Consider this example :

```
unsafe {
let layout = Layout::array::<u32>(5).unwrap();
let mut ptr = alloc(layout) as *mut u32;
let base = ptr;
ptr = ptr.add(0);
*ptr = 10;
ptr = ptr.add(1);
*ptr = 100;
ptr = ptr.add(2);
*ptr = 200;
ptr = ptr.add(3);
*ptr = 300;
ptr = ptr.add(4);
*ptr = 400;
let a = *base.add(0);
let b = *base.add(1);
let c = *base.add(2);
let d = *base.add(3);
let e = *base.add(4);
}
```

result is :

a : 10

b : 100

c : 0

d : 200

e : 0

What did I mistake, or is it a bug?

Thanks