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

时间:2013-11-16 00:22:06

标签: c memcpy

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

char **buffer;
char data[10]

memcpy(*buffer, data, 10);

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

1 个答案:

答案 0 :(得分:2)

指针变量buffer不指向任何内容。您需要分配内存并使buffer指向它。例如:

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