【发布时间】:2012-12-16 12:18:02
【问题描述】:
这是我的代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main(int arge, char *argv[])
{
FILE *f1;
char ch,*fn="~/lyrics/";
strcat(fn,argv[1]);
strcat(fn,".txt");
if( (f1 = fopen(fn,"r"))==NULL )
{
printf("\nWrong filename\n%s not found",argv[1]);
return;
}
while((ch=getw(f1))!=EOF)
{
printf("%c",ch);
}
}
我使用gcc -g -o file file.c 编译它并且编译器没有给出错误消息。但是当我运行它时,我收到错误消息:
Segmentation fault (core dumped)
Bad permissions for mapped region at address 0x8048659 at 0x402C36B: strcat
(in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) by 0x80484D6: main (lyrics.c:9)
谁能帮帮我?
【问题讨论】:
-
编译时添加
-Wall。 -
@alk 不适合我
-
@SuiciDoga:拜托,什么不起作用。它是如何失败的?
-
@alk 仍然分段错误
-
您可能想阅读下面的答案,这些答案解释了问题代码的问题。 @SuiciDoga
标签: c segmentation-fault valgrind