我需要为需要用作2d数组的指针分配内存.我知道如何为char指针和int指针分配内存我很困惑如何分配指针数组的内存.原因的图形表示非常有帮助,下面的代码也很好吗?
char *names[5];
for(i=0;i<5;i++)
{
names[i]=(*char)malloc(sizeof(char));
}
Run Code Online (Sandbox Code Playgroud)
Jac*_*ack 11
不,这不是因为您正在分配数组,假设维度只有1个基本类型char元素(即1个字节).
我假设您想要分配5个指向内部字符串的指针names,但只是指针.
您应该根据指针的大小乘以元素的数量来分配它:
char **names = malloc(sizeof(char*)*5);
Run Code Online (Sandbox Code Playgroud)
您不需要使用循环逐个分配它们.请注意,您需要使用指定它是一个指针指针**