我有一个函数,它的参数之一是“void*buffer”在这个函数中,我需要写入那个内存位置。但是,做一些像

*buffer = "Hello\0Hi\0";

无法工作,因为我无法取消对void*指针的引用如何将字符串数据放入该内存位置注意,我需要复制数据,不一定是字符串,因为它可能包含空字符。
更新以反映strcpy不够

最佳答案

如果字符串“可能包含空字符”,那么它实际上不是一个C字符串。
如果需要将一定数量的字节从一个内存位置复制到另一个内存位置,无论内容如何,都可以使用memcpy可以使用sizeof获取字符串文本的大小(此大小包括最终的隐式空终止符)。

关于c - 写入C中给定的void *内存位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4092861/

10-11 15:32