我正在制作一个程序来分配一个 20x20 的字符数组。这是我所做的:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char *a=(char*) calloc(20,sizeof(char[20]));
a[0]="abcd";
printf("%s\n",a[0]);
return 0;
}
上述代码的输出是(null)
. 有人可以解释一下吗?据我说,我分配了一个指针a
20 个空间,每个空间大小为 20。所以a[0]
从技术上讲有足够的内存来存储“abcd”,但输出是null
.