Essentially, this is my problem.
FILE *fp = "/my/textfile/location";
fseek(fp, 0L, SEEK_END);
int size = ftell(fp);
char *output_string[size];
printf("%d", size); // gives me 25
printf("%ld", sizeof(output_string)); // gives me 200.
Why does sizeof(output_string) give me 200 when the int returned from ftell is 20?
char *output_string[size];
This is array of pointer, if you are running in 64-bits machine, one pointer is 64-bits, which is 8 bytes. if size is 25, then :
sizeof(output_string) = 25 * sizeof(char *) = 25 * 8 = 200