這是我的代碼:分割斷層strcat的
#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
@alk不適合我 –
@SuiciDoga:請,什麼是不工作。它是如何失敗的? – alk