我从'atoi'函数得到整数数据。
char value[20];
scanf("%s %s", temp1, value);
int integer_val = atoi(value);
我尝试将这些数据按 1 字节按 1 字节分配到堆内存中。并按 1 个字节打印。(使用通用数据类型)
void *mem = malloc(300);
memset(mem, NULL, 300);
for(int j = 0; j < 4; ++j){
*(char *)(mem+j) = *(char *)(&integer_val + j);
const char *buffer = mem;
printf("%02x\n", buffer[j] & 0xff);
}
当 scanf 读取
abc 10
我预测终端打印
0a
00
00
00
但它确实打印:
0a
00
a0
f9
为什么 ?什么是 a0 fp ...?T_T