从二进制文件中读取并复制到数组中

时间:2013-04-03 16:29:56

标签: c arrays fread strcpy

它的时间结束但无论如何我想要完成这个问题。我想读取二进制文件缓冲区,后来我想将此缓冲区复制到数组。我这样做;

int i=0;
char *buffer;

buffer=(char *)malloc(filelen+1);  //filelen is length of binary file

while()
{
fread(buffer,100,1,filepointer);   //filepointer is input binary file pointer,i wanna read 100 byte
strcpy(tup[i],buffer); //tup[] is char array.i want copy buffer to in this array 
i++;
}

我在strcpy行出错了你无法将指针复制到类似的整数。

感谢名单。

2 个答案:

答案 0 :(得分:2)

我想你想写:

strcpy(&tup[i],buffer);

但是还有许多其他问题。

  1. 你怎么知道tup和缓冲区是空终止的。缓冲区不太可能是null终止。因此,您应memcpy代替(使用已知的计算长度)
  2. 您确定无法覆盖tup
  3. 的结尾
  4. 因为你的临时缓冲区一次只读取100个字节,所以你不需要分配完整的内存文件大小。

答案 1 :(得分:1)

必须是:

strcpy(tup,buffer);

如果tup是char* tup

此外,您可以在使用buffer[filelen]=0;malloc()分配内存后使用buffer,这将解决'\0'终止问题。