-6

有没有办法将整数大小的 100 000 放入 char 数组的 4 个元素中?如果我使用 sprintf 或 itoa,数组有 6 个元素。我尝试使用它,但它没有用。有什么办法可以将这 4 个元素恢复为整数?

char *s; 
int value = 100000; 
*((int *)s)=value;
4

1 回答 1

2

注意:

int value = 100000; 
char *s; 
*((int *)s)=value;

取消引用未初始化的指针s,这会导致未定义的行为。你可以这样做:

int value = 100000; 
char s[4]; 
*((int *)&s[0])=value;

请注意,这存储value在 charr 数组(在内存级别)“占用”的内存块中,这与 charr 数组不同sprintf,它将以字符串形式打印值(表示数字的字符)。

于 2013-10-18T22:27:35.290 回答