我想阅读文件并将行保存在char (*ptr)[LENGTH]
中。我的程序背后的基本思想是比较两个文件中的行,并注意用户每行之间的差异。行的长度是固定的,文件中的行数不是。这就是为什么我认为数据结构是一个不错的选择。
现在我只是逐行读取文件并希望保存每一行(请注意长度是固定的),并指向包含该行的char数组。不知怎的,它不起作用。我在每一行创建一个新的字符数组,以获取一个新地址来获取一行的新地址(但地址保持不变)。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LENGTH 50
int main(void)
{
FILE* fp1;
fp1 = fopen("test1", "r");
char singleLine[LENGTH] = "";
char (*ptr)[LENGTH];
ptr = malloc(sizeof(char) * LENGTH * 10);
memset(ptr, 0, sizeof(char) * LENGTH * 10);
while (fgets(singleLine, sizeof(singleLine), fp1) != NULL)
{
char tmp[LENGTH] = "";
strcpy(tmp, singleLine);
ptr = &singleLine;
printf("\n%p\n", (void*) &tmp[0]);
printf("\n%p\n", *ptr);
*ptr++;
}
return 0;
}
这不起作用,我不确定我的思维过程在哪里 是错的。我也有一种感觉,应该有一种更清洁的方式来获得我想要的功能。
感谢您的任何建议和提示!