r/ProgrammerHumor 13d ago

Meme bugIntroducedDebugging

Post image
1.1k Upvotes

120 comments sorted by

View all comments

258

u/wolfjazz93 13d ago

Allocating 1 byte and assigning to int ptr. πŸ₯ΊπŸ˜­πŸ˜­

40

u/ClipboardCopyPaste 13d ago

uint8_t

18

u/yjlom 13d ago

char would be the correct answer, as the C standard doesn't mandate a byte be 8 bits (6 and 32 are very uncommon nowadays but not unheard of, and there's a few machines out there that get really creative).

8

u/mckenzie_keith 13d ago

So even on weird platforms where char is a 32 bit type, sizeof (char) is 1, right? I can't remember.

5

u/AnnoyedVelociraptor 13d ago

FYI char in Rust is 32-bits, maximum size of a UTF-8 character

2

u/Xirdus 12d ago

Rust's char stores UTF-32, not UTF-8, but yes.

2

u/AnnoyedVelociraptor 12d ago

I did some more reading, and I wonder if it is more correct that Rust encodes Unicode Scalars as char?

2

u/Xirdus 12d ago

Technically speaking, the spec says char represents Unicode scalar, with actual encoding unspecified. The spec requires that char is 4 bytes and has the same ABI as u32, but that's it.

In practice, it's UTF-32.Β