私はこのコードを持っています:
char **arr;
char* line=NULL;
int i=0;
size_t len=0;
ssize_t read1;
fp=fopen("list.txt","r");
if(fp==NULL)
exit(EXIT_FAILURE);
while((read1=getline(&line,&len,fp))!=-1)
i++;
fclose(fp);
fp=fopen("list.txt","r");
if(fp==NULL)
exit(EXIT_FAILURE);
arr=(char**)malloc(i*sizeof(char*)); // i is a variable i use to know the number of lines
i=0;
while((read1=getline(&line,&len,fp))!=-1)
{
line[strlen(line)]='\0';
arr[i]=(char*)malloc(strlen(line)+1);
strcpy(arr[i],line);
i++;
}
strcpy
プログラムを試してみるとクラッシュしmalloc
ます。問題はありますか? 私はそれi
が十分に大きいと確信しています。そして、それはline
最初です。char*
NULL
編集: このプログラムが Qt にあることを忘れていました。