>我有一个字符串数组,定义为指向字符串的指针数组,如下所示
char* dict[50];
dict[0][0]= 0;
printf("%d", dict[0][0]);
这给出了分割错误,有人可以解释为什么会这样吗?另外,如果我输入字典[0]=0,它是否与字典[0][0]=0相同
原因是您没有分配任何内存。 char* dict[50]
是一个 50 个元素长的 char 指针数组:如果这些指针没有指向有效内存,则写入它们是未定义的行为,并且经常会使程序崩溃或更糟。
你有一个包含 50 个指针的数组,其中没有一个是初始化的。
执行 dict[0]=0
会将第一个数组元素设置为NULL
指针。
执行dict[0][0]=0
取消引用未初始化的指针,或者,如果您已经执行了dict[0]=0
,则取消引用NULL
指针。