0

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

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 行遇到错误,您无法将指针复制到类似的整数。

谢谢。

4

2 回答 2

2

我想你想写:

strcpy(&tup[i],buffer);

然而,还有许多其他问题。

  1. 你怎么知道 tup 和 buffer 是空终止的。缓冲区不太可能为空终止。因此,您应该memcpy(使用已知的计算长度)
  2. 你确定不可能覆盖 then end oftup吗?
  3. 由于您的临时缓冲区一次只能读取 100 个字节,因此您不需要分配内存的完整文件大小。
于 2013-04-03T16:37:58.033 回答
1

一定是:

strcpy(tup,buffer);

如果 tup 是char* tup.

您也可以buffer[filelen]=0;malloc()为 分配内存后使用buffer,这将负责'\0'终止。

于 2013-04-03T16:33:54.180 回答