J'ai ce code:pointeur strcpy char abort
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++;
}
Lorsque je tente strcpy
le programme crashes.Is un problème malloc
? Je suis très sûr que i
est assez grand. Et le line
est char*
et est NULL
en premier.
EDIT: J'ai oublié que ce programme est en Qt.
Vous n'avez pas besoin de convertir la valeur de retour de 'malloc()' dans un programme C. –
*** "' i' est une variable que j'utilise pour connaître le nombre de lignes "*** - Alors pourquoi est-il nommé' i' et non 'numberOfLines' /' linesNumber'? – LihO
Comment 'line' est-il défini? Et quelle est la définition/valeur de 'len'? –