C编程,操作字符串时出现分段错误
我有一个字符串数组,定义为指向字符串的指针数组,如下所示C编程,操作字符串时出现分段错误,c,string,pointers,char,segmentation-fault,C,String,Pointers,Char,Segmentation Fault,我有一个字符串数组,定义为指向字符串的指针数组,如下所示 char* dict[50]; dict[0][0]= 0; printf("%d", dict[0][0]); //这是一个分段错误,有人能解释一下原因吗?另外,如果我把dict[0]=0,它是否与dict[0][0]=0相同?原因是您没有分配任何内存char*dict[50]是一个50个元素长的字符指针数组:如果这些指针没有被指向有效内存,写入它们是未定义的行为,经常会使程序崩溃或更糟。您有一个50个指针的数组,其中没有一个是初始化
char* dict[50];
dict[0][0]= 0;
printf("%d", dict[0][0]);
//这是一个分段错误,有人能解释一下原因吗?另外,如果我把dict[0]=0,它是否与dict[0][0]=0相同?原因是您没有分配任何内存
char*dict[50]
是一个50个元素长的字符指针数组:如果这些指针没有被指向有效内存,写入它们是未定义的行为,经常会使程序崩溃或更糟。您有一个50个指针的数组,其中没有一个是初始化的
执行dict[0]=0
将第一个数组元素设置为NULL
指针
执行
dict[0][0]=0
将取消对未初始化指针的引用,或者,如果您已经执行dict[0]=0
,将取消对NULL
指针的引用。您试图实现什么?你能详细说明一下吗?