gpt4 book ai didi

在 C 中将未知长度缓冲区复制到固定大小缓冲区

转载 作者:行者123 更新时间:2023-11-30 16:48:54 25 4
gpt4 key购买 nike

我们如何将未知大小的缓冲区复制到c中的固定缓冲区中?

对于我的函数之一,我试图将未知大小的缓冲区复制到固定缓冲区(大小为 1024 字节)。固定大小的缓冲区在结构中声明(稍后我需要立即发送结构的所有内容)。我不确定哪个函数最适合解决这个问题。

我将发送结构缓冲区(ex_buffer)并重置结构缓冲区(ex_buffer)中的值;然后我需要将未知大小缓冲区(buffer)中的接下来的1024字节存储到固定缓冲区(ex_buffer)中,依此类推。

为了示例目的,我附上了一小段通用代码。

 struct example {
char ex_buffer[1024];
}

int main (int argv, char *argv[]){
char *buffer = realloc(NULL, sizeof(char)*1024);
FILE *example = fopen(file,"r");

fseek(example, 0L, SEEK_END);
//we compute the size of the file and stores it in a variable called "ex_size"

fread(buffer, sizeof(char), ex_size, example);
fclose(example);

//Now we want to copy the 1024 bytes from the buffer (buffer) into the struct buffer (ex_buffer)
While( "some counter" < "# of bytes read"){
//copy the 1024 bytes into struct buffer
//Do something with the struct buffer, clear it
//Move onto the next 1024 bytes in the buffer (ex_buffer)
//Increment the counter
}

}

最佳答案

使用memcpy(),就像这样

memcpy(example.ex_buffer, buffer, 1024);
  • 另外,realloc(NULL ...)你真的应该写malloc()
  • 并且,sizeof(char) 根据定义为 1。

关于在 C 中将未知长度缓冲区复制到固定大小缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42824407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com