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

标签 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 行出错,你不能将指针复制到整数之类的东西。

谢谢。

最佳答案

我想你想写:

strcpy(&tup[i],buffer);

但是还有许多其他问题。

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

关于c - 从二进制文件中读取并复制到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15792944/

相关文章:

arrays - 字符串快速追加到数组

c - C 中字符串文字的地址

c++ - 随机整数/出现次数 (C++) 问题

c++ - 内存通过 new[] 泄漏而无需调用 new

php - 为 fread fwrite 设置 utf-8 编码

c - fread() 不起作用,但 fwrite() 起作用?

c++ - 在 C++ 中包装 C,仅用于 try/catch

c - 打开 .c 文件时自动包含头文件

c - Printf 语句未按顺序打印

c - 为什么整个结构在C中不能比较,却可以复制?