保留两个字符串的公共前缀.....C编程...分段错误错误
char *strip_postfix(char *str1, char *str2)
{
int i;
for(i=0; str2[i] != '\0'; i++)
{
if(str1[i] != str2[i])
{
str1[i] = '\0';
break;
}
}
return str3;
}
这段代码在运行时在 str1[i] = '\0' 行给出分段错误错误...我认为存在一些内存分配问题,因为当我创建一个新变量并将内容复制到那里时,然后返回该新变量,一切正常......请让我知道这有什么问题。
char *strip_postfix(char *str1, char *str2)
{
int i;
for(i=0; str2[i] != '\0'; i++)
{
if(str1[i] != str2[i])
{
str1[i] = '\0';
break;
}
}
return str3;
}
This code, is giving segmentation fault error at line str1[i] = '\0' during run time..... I think there is some memory allocation issue,, as while I create a new variable and copy the contents there, and then return that new variable, everything works fine.... Please let me know what's the issue in this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果 str1 小于 str2 会发生什么?
您还拥有:
这让我认为这段代码无法以其当前形式编译......
What happens if str1 is smaller than str2?
You also have:
Which makes me think this code will not compile in its current form...
你的代码应该像
谢谢
Your code should like
Thanks