char* fetchFile(char* filename) { char* buffer = calloc(BUFFER,sizeof(buffer)); int index = 0; int totalsize = BUFFER; char next; FILE* file = fopen(filename, "r"); if (file != NULL) { while (!feof(file)) { fread(&next, sizeof(char), 1, file); if (index == totalsize-1) { totalsize += BUFFER; char* new = calloc(totalsize,sizeof(new)); strcpy(new, buffer); free(buffer); buffer = new; } buffer[index] = next; index++; } buffer[index] = '\0'; close(file); } else { free(buffer); buffer = NULL; } return buffer; }