繁体   English   中英

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

[英]Store int inside char array in C

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

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

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

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

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

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

int a = 1234;
int *size = &a;

以上是不允许的。

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

存储值:

int value = 1234;
memcpy( mem, &value, sizeof(value) );

检索值:

memcpy( &value, mem, sizeof(value) );

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

你可以使用sprintf -

int size=1234;
char mem[50];
sprintf(mem,"%d",size);

注意 - 这将附加null终止符。

我尝试了另一种方式,我得到了一个解决方案。 我发布它作为其他人的帮助。

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

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

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

printf("%d\n",*(int*)&mem[0]);
printf("%c\n",*(char*)&mem[4]);

我指定了一个指针指针。 我工作。 谢谢大家回答。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM