我需要为指针数组动态分配内存。
让我们假设,
char *names[50];
char *element;
我使用以下代码动态分配内存,这会产生错误。
names=malloc(sizeof(char *));
然后,我需要为这个指定另一个字符指针,比如
names=element;
我得到的错误是
": warning: assignment from incompatible pointer type"
。我该怎么解决?
最佳答案
名称=malloc(sizeof(char*));
将分配4或8字节(取决于您的系统)。这没有意义,因为你的数组在声明中的大小已经达到了50个条目。。。
名称=元素;
这不是C中数组的使用方式。您已经声明“names”中有50个元素,每个元素都被分配为指向字符数组的不同指针。您需要决定要分配数组中的哪个元素。例如:
char *test1 = "test string 1";
char *test2 = "test string 2";
names[0] = test1; // Assign pointer to string 1 to first element of array
names[1] = test2; // Assign pointer to string 2 to second element of array
关于c - 我如何为C中的指针数组动态分配内存?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8131799/