Do you have to know the PARTICULAR computers hardware for C programming?

In C, I hear you have to manually allocate the memory, and possibly do other things by hand in a similar realm. This seems to be saying that you need to write C with the particular hardware of the computer you are actually using in mind (otherwise you how do you know where you are supposed to do the specific memory allocation to and all that). Or is this not the case? Just was wanting some clarification.

Thanks.
Nublette

You can do a lot without assuming anything about the hardware not defined by the standard library itself. The biggest concern is endian-ness, but that can be tested.

For memory allocation, you can request a big block and then manage it yourself.

~Max

C is a bit higher level than that. The compiler will take care of the specifics, but you will have to tell the compiler to target a specific operating system and cpu architecture.

When you allocate memory in c, it is an abstraction that resolves to a call to the operating system.

When people talk about manual memory allocation in c, they are contrasting it with automatic memory allocation in even higher level languages than c, usually by a process called garbage collection.