gpt4 book ai didi

c++ - c++中的这个反向数组代码有什么问题?

转载 作者:行者123 更新时间:2023-11-30 03:55:21 25 4
gpt4 key购买 nike

程序编译正常,但在运行时崩溃并显示:进程终止,状态为 -1073741819

void reverse(char *str){

char * end1 = str;
char tmp = 'c';
if(str){
while(*end1){
++end1;
}
--end1;

while(str<end1){
tmp=*str;
*str=*end1;
*end1=tmp;
str++;
end1--;
}
}
}

有什么想法吗?

最佳答案

您的 reverse 实现绝对没有问题:只要您传递的字符串以 null 结尾且可写,您的代码就会正常工作。

那么你调用它的方式一定有问题。最常见的可能性是传递一个字符串文字,写入它是可能导致崩溃的未定义行为:

char *s = "quick brown fox";
reverse(s); // <<== This would be undefined behavior

Demo of your working code .

关于c++ - c++中的这个反向数组代码有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29090758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com