我需要为指针数组动态分配内存。
让我们假设,

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/

10-11 02:42
查看更多