我正在尝试从文件中读取输入,并使用 malloc 和 realloc 将每个字符串放入一个数组中。因此,如果输入文件是:
alex
john
jane
smith
数组的内容包含 {"alex\n", "john\n", "jane\n", "smith\n"}。到目前为止,我已经做了这样的事情:
int n=0;
int size=1;
File *fp = fopen(args[0],"r");
int c;
char* inputFile;
inputFile = (char*) malloc(size);
if(fp==0){
fprintf(stderr, "Cannot open file!\n");
return -1;}
else{
do{
c = fgetc(fp);
inputFile = (char*) realloc(inputFile, size+1);
inputFile[n]=c;
n++;
size++;
}while(c!=EOF);
我相信这个算法最终会得到这样的数组 {'a','l','e','x','\n','j','o','h','n',' \n','j','a','n','e','\n','s','m','i','t','h','\n'}
如何使 inputFile 成为二维数组?我应该如何处理 realloc?