In this function I am trying to malloc an array of pointers, then for each pointer malloc space for a string. It compiles, but segfaults at the highlighted line. What am I doing wrong?
Cheers.Code:int LoadWordList(char *fname, char **list) { FILE *fp = fopen(fname, "r"); char ch; char string[MAX_LEN]; int linecount = 0, i, len; if(! fp) { printf("Error: Unable to open wordlist file.\n"); exit(EXIT_FAILURE); } while((ch = fgetc(fp)) != EOF) if(ch == '\n') linecount++; rewind(fp); *list = (char*)malloc(linecount+1); for(i=0; i<linecount; i++) { fgets(string, MAX_LEN, fp); len = strlen(string); list[i] = (char*)malloc(len+1); // Segfaults here //strcpy(list[i], string); //printf("%s", list[i]); } return linecount; }



LinkBack URL
About LinkBacks


