gpt4 book ai didi

c - 为什么这个简单的程序给出 "bus error"?

转载 作者:行者123 更新时间:2023-11-30 15:07:35 35 4
gpt4 key购买 nike

#include <stdio.h>

void squeeze(char s[], int c)
{
int i, j;
for(i = j = 0; s[i]!= '\0'; i++)
{
if (s[i] != c)
{
s[j++] = s[i];
}
}
s[j] = '\0';
printf("%s\n", s);
}


int main(void)
{
squeeze("asfafsdfsaaaasdfsd", 'a');
}

我在 mac 中运行这个程序,看起来问题来自于以下行:s[j++] = s[i]

但我不知道为什么。

谢谢!

最佳答案

因为字符串文字是只读的。要创建可写的字符数组,请尝试此操作

int main( void )
{
char array[] = "asfafsdfsaaaasdfsd";
squeeze( array, 'a' );
}

关于c - 为什么这个简单的程序给出 "bus error"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38154680/

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