C编程,操作字符串时出现分段错误



>我有一个字符串数组,定义为指向字符串的指针数组,如下所示

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指针。

相关内容

  • 没有找到相关文章