I'm learning about linear congruential generator in an algorithms and data structures course. After thinking about RNG implementation we've been using (a=429493445, c=907633385, mod=4294967296, X is _uint32), one thing came to my mind: Program has a function for setting seed.
How important would that function be in C and C++?
Here's my line of thought: Once the program starts, OS assigns addresses to all used variables. Data which is in memory location given to seed can be interpreted as a number.
I understand that in small computers it may happen that operating system (if there is one) assigns several times same address to seed but wouldn't data contained in that address be different every time? Unless the system sets all free RAM to some value after every start, data contained in RAM would be pretty much random itself and provide good enough seed.
Even if data contained in space given to seed was used by another program, I don't see how would that make an impact on the generator itself.