写入C中的给定void*内存位置

Mal*_*ala 1 c pointers

我有一个函数,它的参数之一是"void*buffer".在这个函数中,我需要写入该内存位置.但是,做类似的事情

*buffer = "Hello\0Hi\0";
Run Code Online (Sandbox Code Playgroud)

不起作用,因为我无法取消引用void*指针.如何将字符串数据放入该内存位置?请注意,我需要复制数据,不一定是字符串,因为它可能包含空字符.

更新以反映strcpy是不够的

Jam*_*lis 6

如果你的字符串"可能包含空字符",那么它实际上不是一个C字符串.

如果需要将一定数量的字节从一个内存位置复制到另一个内存位置,无论内容如何,​​都可以使用memcpy.您可以使用sizeof(此大小包括最终的隐式空终止符)来获取字符串文字的大小.