我对整个 C 编程(来自 Java)很陌生,老实说它真的很令人困惑。好的,对于这个问题,我正在尝试为我的 2D 字符串数组分配连续的数据 block (猜测它类似于 3D 数组??)。我所拥有的只是我相信字符串数组的连续分配? 有人可以帮我解决二维数组吗?
是的,我在运行程序之前知道大小,它的定义是行的 ROWS、列的 COLS 和字符串长度的 NAME。
char **people = malloc(COLS * sizeof(char *));
people[0] = malloc(COLS * NAME);
for(int i = 1; i < COLS; i++)
people[i] = people[0] + i * NAME;
最佳答案
如果您在运行程序之前实际上知道数组的大小,则不需要使用 malloc 动态分配内存,您可以创建一个 2D 静态数组。在您的情况下,由于它是一个二维字符串数组,因此可以将其声明为 char * array[ROWS][COLS]
,然后您可以通过以下方式将字符串分配给特定元素:数组[nrow][ncol] =“您的字符串”
。
关于c - 如何在 C 中分配连续的二维字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40568045/