Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> > Character/byte pointers often start at unaligned offsets

> How's that possible? Isn't that an UB?

"Unaligned" was not the best word to use. What I really meant was byte-aligned:

  char* s = strdup("Hello world!");
  char* p = &s[1];
Here, `p` is byte-aligned and will have a 1 in the least significant position. So a scheme that uses low bits to encode allocation failure would have to work hard to avoid confusing byte-aligned pointers with allocation-failure-signalling pointers.


> Unaligned" was not the best word to use. What I really meant was byte-aligned

Yeah, I figured just few moments after I replied what you actually meant. That's why I edited the post above.

Well, to make it more robust one would have to wrap it in it's own pointer type but I think it's doable. I don't know whether or not it is a wise choice to make it a dependency in the OS though :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: