Interview Questions

My compiler isnt letting me declare a big array like double array];

C Interview Questions and Answers


(Continued from previous question...)

My compiler isnt letting me declare a big array like double array];

Q: My compiler isn't letting me declare a big array like double array[256][256];

A:A reasonable computer ought to give you transparent access to all available memory. If you're not so lucky, you'll either have to rethink your program's use of memory, or use various system-specific techniques.

64K is (still) a pretty big chunk of memory. No matter how much memory your computer has available, it's asking a lot to be able to allocate huge amounts of it contiguously. (The C Standard does not guarantee that single objects can be 32K or larger, or 64K for C99.) Often it's a good idea to use data structures which don't require that all memory be contiguous. For dynamically-allocated multidimensional arrays, you can use pointers to pointers. Instead of a large array of structures, you can use a linked list, or an array of pointers to structures.

If you're using a PC-compatible (8086-based) system, and running up against a 64K or 640K limit, consider using ``huge'' memory model, or expanded or extended memory, or malloc variants such as halloc or farmalloc, or a 32-bit ``flat'' compile , or some kind of a DOS extender, or another operating system.

(Continued on next question...)

Other Interview Questions