[英]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.