将int存储在C中的char数组中

dha*_*kac 2 c int

我试图在char数组中存储int值,并再次访问它以便稍后检索值.这是我尝试过的,但它不起作用,因为我正在寻找.

char mem[50];
int* size = (int*)&mem[0];

char* isFree = (char*)&mem[4];

char *t = (char *)&mem[4];
Run Code Online (Sandbox Code Playgroud)

现在我想根据订单在char数组中存储1234和'f'.(在前5个字节内)

我不允许使用其他变量,必须使用char数组.

int a = 1234;
int *size = &a;
Run Code Online (Sandbox Code Playgroud)

以上是不允许的.

thi*_*his 5

您必须使用该类型unsigned char来复制为您执行此操作的内存或memcpy.将char数组作为int的别名在C中未定义.

存储值:

int value = 1234;
memcpy( mem, &value, sizeof(value) );
Run Code Online (Sandbox Code Playgroud)

检索值:

memcpy( &value, mem, sizeof(value) );
Run Code Online (Sandbox Code Playgroud)

(数组mem必须足够大才能保存int类型.)