gpt4 book ai didi

c - 在 C 中返回指向 char 数组的指针

转载 作者:太空狗 更新时间:2023-10-29 17:18:48 25 4
gpt4 key购买 nike

我在 StackOverflow 上看到了很多关于此的问题,但阅读答案对我来说并没有弄清楚,可能是因为我是 C 编程的新手。这是代码:

#include <stdio.h>

char* squeeze(char s[], char c);

main()
{
printf("%s", squeeze("hello", 'o'));
}

char* squeeze(char s[], char c)
{
int i, j;

for(i = j = 0; s[i] != '\0'; i++)
if(s[i] != c)
s[j++] = s[i];
s[j] = '\0';

return s;
}

它可以编译,但在运行时出现段错误。我读过 this关于返回数组的常见问题并尝试了那里建议的“静态”技术,但仍然无法使程序运行。谁能指出具体问题所在以及我以后应该注意什么?

最佳答案

传递给挤压函数的第一个参数是一个只读 字符串文字"hello",您正试图对其进行修改。

而是传递给它一个可修改的字符数组:

char str[] = "hello";
printf("%s", squeeze(str, 'o'));

关于c - 在 C 中返回指向 char 数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2626538/

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