我试图在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)
以上是不允许的.
您必须使用该类型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类型.)