c - 在 char ** 缓冲区上使用 memcpy()

标签 c memcpy

如果我有一个指向消息缓冲区的指针,我如何将 memcpy() 放入该缓冲区?例如说我有以下内容:

char **buffer;
char data[10]

memcpy(*buffer, data, 10);

但这似乎不起作用并且总是使我的程序崩溃,但是编译器并不介意。有人可以告诉我为什么吗?顺便说一句,我有一个 char ** 缓冲区的原因是因为它作为函数的参数传递。

最佳答案

指针变量buffer 没有指向任何东西。您需要分配内存并使 buffer 指向它。例如:

buffer = malloc(sizeof(*buffer));
*buffer = malloc(10);
memcpy(*buffer, data, 10);

关于c - 在 char ** 缓冲区上使用 memcpy(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20012983/

相关文章:

c - 如何在 c 中使用预处理器编写动态大小的数组?

python - 使用 CPython api 的生成器函数

c - memcpy() 似乎不起作用

C++ - 缓冲区合并添加额外的空值

c - strcpy 与 memcpy 用于复制已知大小的 char *

在c中使用memcpy复制二进制数据

c - C语言如何给链表的每个节点添加描述

c - (有条件?)在函数中创建局部变量

c - 如何检查一个二进制文件是否包含在另一个二进制文件中?

C : Insert/get element in/from void array