我试图从一个文件中读取每一行,并将这些值存储在一个指针数组中。我是C新手,很抱歉我的代码杂乱无章。
我试着逐个字符读取,将它们放入字符串中,然后将该字符串"存储"在指针数组中,因为这看起来是一个简单的解决方案,但我在内存分配方面遇到了麻烦。
下面是我的代码:
char *files[100];
char buffer;
int r, i, j;
char temp[100];
int fd=open(argv[1], O_RDONLY);
i=j=0;
while(read (fd, &buffer, 1) > 0) {
if(buffer != '\n') {
temp[i] = buffer;
}
else{
files[j]=temp;
j++;
i=0;
continue;
}
i++;
}
1条答案
按热度按时间brqmpdu11#
我解决了这个问题,谢谢你的帮助。我必须为每一行分配内存,否则我的文件向量总是指向同一个缓冲区。我只是在将temp的值赋给文件之前添加了下面的行:
文件[j] =(字符 *)malloc(字符的大小 * 字符串长度(临时);