Segmentation fault

carldlee 2010-11-25 07:43:38
char *bufferA = (char*)malloc( 100* sizeof(char) );


.......

bufferA 被字符填充...略过

.........

char *bufferB = (char*)malloc( 100* sizeof(char) );
char *temp = (char*)malloc( 10 * sizeof(char) );
strcpy(bufferB , bufferA );
sprintf(temp , "%d", 159);


问题:出现Segmentation fault

...全文
140 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
就想叫yoko 2010-11-25
  • 打赏
  • 举报
回复
建议你在char *bufferA = (char*)malloc( 100* sizeof(char) );
后面加上memset(bufferA, 0, 100*sizeof(char));
如果断错误不是出现在你略过的地方那么就是你给bufferA填充的时候没有加上\0
这样strcpy是要一直复制到\0才结束的,造成内存越界
wocow3 2010-11-25
  • 打赏
  • 举报
回复
linux下Segmentation fault,一般是越界访问
luciferisnotsatan 2010-11-25
  • 打赏
  • 举报
回复
Segmentation fault一般是指针问题。调试下看看
阿磊2013 2010-11-25
  • 打赏
  • 举报
回复
贴出来的这段貌似没有问题
东大坡居士 2010-11-25
  • 打赏
  • 举报
回复
都发出来呗
macro_lu 2010-11-25
  • 打赏
  • 举报
回复
void *bufferA = (char*)malloc( 100* sizeof(char) );

试试 方正就是指针错误
zddhub 2010-11-25
  • 打赏
  • 举报
回复
Segmentation fault,一般都是内存泄露
gules 2010-11-25
  • 打赏
  • 举报
回复
问题可能就恰恰出在被略过的部分,这种字符串的填充一定要记得在结尾处加上'\0'。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧