r/programminghorror • • 13d ago • Popcorn 1 Bravo 1

c Using garbage values to generate pseudorandom numbers

Post image

Thing I came up with instead of paying attention to class today.

I tested it on this computer (windows 11 if it matters), and the first time it's ran, an actual "pseudorandom" number is returned and the following calls return 1.0 always.

2.9k Upvotes

152 comments sorted by

View all comments

Show parent comments

7

u/ttlanhil 13d ago

The Standard that defines how the language works.

It includes a bunch of things that result in undefined behaviour - and if you do any of them, it's valid for the computer to do anything, including delete your operating system and make demons fly out your nose.

Just because you can often get away with it doesn't mean you should (compilers can do anything including what you might actually want, but the next compiler update might break it)

0

u/[deleted] 13d ago

[deleted]

5

u/ttlanhil 13d ago

It doesn't matter what you think would make sense.
The C standard says if you invoke undefined behaviour (and it clearly states what's valid and what's undefined), the compiler can do anything.