将整数添加到c中的char数组

use*_*866 5 c

这可能是一个愚蠢的问题,但仍然没有解决。我确实有一个char数组,说char arr [100]有一些数据

 char arry[100] ---- some data;
 int test;
 memcpy(&test,array+4,sizeof(int))
Run Code Online (Sandbox Code Playgroud)

此memcpy将做什么谢谢SKP

fuk*_*hik 5

这对于所谓的数据序列化可能很有用。

假设有人将一个整数保存到文件中。

然后,您将文件arry作为字节流读入缓冲区(在您的情况下)。现在您想要将这些字节转换为实际数据,例如在您的例子中,整数test已使用偏移量 4 存储。

有几种方法可以做到这一点。一种是使用memcpy将字节复制到编译器将它们视为整数的区域。

所以回答你的问题:

 memcpy(&test,array+4,sizeof(int))
Run Code Online (Sandbox Code Playgroud)

...将从第 4 个字节开始复制 sizeof(int) 字节数到为变量(类型为)array分配的内存中。现在有了原来保存的整数值,可能使用以下代码:testinttestarry

 memcpy(array+4, &original_int, sizeof(int))
Run Code Online (Sandbox Code Playgroud)

执行此操作需要一些硬件和语言知识。由于并发症有很多,其中:


hac*_*cks 2

它只是将元素复制array[4]到变量test。在 32 位机器上sizeof(int)= 4. memcpy将字节复制到可以容纳字节的4地址。&test4