Can someone tell me why I'm seg faulting in this simple C program?
- by user299648
I keep on getting seg faulted, and for the life of me I dont why.
The file I'm scanning is just 18 strings in 18 lines.
I thinks the problem is the way I'm mallocing the double pointer called picks, but I dont know exactly why.
I'm am only trying to scanf strings that are less than 15 chars long, so I don't see the problem. Can someone please help.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LENGTH 100
int main( int argc,char *argv[] )
{
char* string = malloc( sizeof(char) );
char** picks = malloc(15*sizeof(char));
FILE* pick_file = fopen( argv[l], "r" );
int num_picks;
for( num_picks=0 ; fgets( string, MAX_LENGTH, pick_file ) != NULL ; num_picks++ )
{
printf("pick a/an %s ", string );
scanf( "%s", picks+num_picks );
}
int x;
for(x=0; x<num_picks;x++)
printf("s\n", picks+x);
}