C语言有时候提示段错误,有时候提示已放弃,有什么区别吗?

想问下这两个有什么区别吗?不是一个意思吗?
2025-05-06 12:50:34
推荐回答(2个)
回答1:

简单看了一下你的程序
首先,你没有给出完整的程序,这个让大伙看起来确实不方便,因为没有main函数,可能踩内存的地方并不是这个函数本身,是main函数

其次说你的这个函数,貌似确实有点问题,但是由于没有完整的程序,我只说出我的理解,如果有错,直接忽视就好

sprintf(flag_height,"%03d",i+1);
sprintf(flag_width,"%03d",j+1);

我觉得问题出在这里,你查下 sprintf 的用法,第一个参数应该是一个字符串的首地址,你写的确实没有错,参数给入的是一个地址flag_height,但是纵观你的程序,你并没有给这个指针赋值,程序运行到这里,估计在默认创建指针的时候应该赋值为NULL(貌似根据编译器不同而有不同),那个寻址后报出段错误,也是意料之中了

由于没有你完整的代码,不知道你要做什么,修改意见不好提
给出个人意见,仅供参考

如果要打印flag_height中的值,首先应该给flag_height指针分配一片内存,使用malloc函数,其次在向内从中写入值,然后调用sprintf,就应该没有问题了

回答2:

段错误是指指针指向了未分配的内存,已放弃是个啥提示?