【发布时间】:2014-06-02 07:39:22
【问题描述】:
我决定在 C 中创建一个reverse(s) 函数,在此过程中,我在编译过程中遇到了 2 条警告消息。
alexander@debian:~/Dropbox/GitRepo/M2MPL/text$ make reverse
cc reverse.c -o reverse
reverse.c: In function 'reverse':
reverse.c:29:2: warning: return makes integer from pointer without a cast [enabled by default]
reverse.c:29:2: warning: function returns address of local variable [enabled by default]
alexander@debian:~/Dropbox/GitRepo/M2MPL/text$
由于它们是警告,我试图忽略它们并运行程序,当我使用scanf("%s", str1); 输入字符数组Dropbox 时,结果显示为Segmentation Fault。
alexander@debian:~/Dropbox/GitRepo/M2MPL/text$ ./reverse
Enter a string to reverse: Dropbox
Segmentation fault
alexander@debian:~/Dropbox/GitRepo/M2MPL/text$
这是我对reverse(s) 函数的实现:
/* reverse: returns a reversed string of s */
char reverse(char s[])
{
int i, len=strlen(s);
char result[LIMIT];
for (i = len; i >= 0; --i) {
result[len-i] = s[i];
}
return result;
}
我需要帮助来了解为什么我得到了 Segmentation fault 而不是 xobporD,如果可能的话,我需要一个解决此问题的建议。
【问题讨论】:
标签: c function segmentation-fault return warnings