C 中的类型转换 - Ints 和 Char*

Type casting in C - Ints and Char*

假设我得到一个 void* data 数组,并要求我用 2 种不同数据类型的信息填充它:一个 int 数组和一个字符串。

void* data;
int numbers[9];
char* title;

我知道要将数字输入数据数组,我需要像这样进行类型转换:

memcpy((int*)data, numbers, sizeof(numbers));

但是如果我想把title放在数字被复制到数据后的地址中怎么办?

提前致谢。

不,不需要类型转换,因为 memcpy()void *:

一起工作
memcpy(data, numbers, sizeof numbers);

当应用于非类型名称的任何内容时,也不需要 ()sizeof

对于第二部分,您需要计算地址:

memcpy((char *) data + sizeof numbers, title, 1 + strlen(title));

这里我假设 title 是一个以 0 结尾的字符串。 datachar * 的转换是必要的,因为你不能用 void *.

进行指针运算