blob: 75c11ed0f3c64593aae7d8a6d028e4c0971a81c5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
qemu-i386 malloc error
Hi!I use qemu-i386-static on 64 bit machines.And memory request succeeded, but the pointer is wrong.
This is my test program:
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(int argc, char **argv)
{
void *pa=0,*pb=0,*pc=0,*pd=0;
pa = malloc(sizeof(uint32_t));
pb = malloc(sizeof(uint32_t));
pc = malloc(4);
pd = malloc(4);
printf("pa: 0x%x\n",pa);
printf("pb: 0x%x\n",pb);
printf("pc: 0x%x\n",pc);
printf("pd: 0x%x\n",pd);
printf("uint32_t:%d\n",sizeof(uint32_t));
free(pa);
free(pb);
free(pc);
free(pd);
return 0;
}
And it is wrong:
pa: 0x400051a0
pb: 0x400051b0
pc: 0x400051c0
pd: 0x400051d0
uint32_t:4
Why did I apply for 4 bytes of space, but the pointer only increased by 2 bytes??
Is it a BUG??
|