|
|
|
|
|
by astrange
1569 days ago
|
|
The drafting is not the best. The key point is that objects have bounds (even though it doesn't explicitly say it), and pointers point to a base object, and it's UB if those pointers go outside the bounds of that object. malloc is defined to return a pointer to a new "base object". But your code doesn't do that; you can see by reading it that it returns a pointer to `data_storage`. That means the UB conditions for using that pointer don't match the spec. You could say it's supposed to magically work if the function is named `malloc`, but my understanding of all C implementations is they don't do that. |
|