【发布时间】:2011-02-07 06:22:32
【问题描述】:
我在 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 faq,并尝试了那里建议的“静态”技术,但仍然无法让程序正常工作。谁能指出它到底有什么问题以及我将来应该注意什么?
【问题讨论】:
-
@snitko:
main()的返回类型在哪里?