Every compiler has a set of limitations on it as to how big the executable file can be, how many variables can be used, how long the source file can be, etc. In the 1616, the major limit is your total memory of 512k (or 4.5 megabyte, or whatever).
One limitation placed on users by many compilers for the IBM-PC and compatibles is a limit of 64K for the executable code. This is because the IBM-PC uses a microprocessor with a 64K segment size, and it requires special calls to use data outside of a single segment. In order to keep the program small and efficient, these calls are not used, and the size is limited but still adequate for most programs. This limitation does not apply to 1616/OS users, as the Motorola 68000 has a flat memory space of 16 megabyte.
A heap is an area which can be accessed by the program to store data and variables. The data and variables are put on the "heap" by the system as calls to "malloc" are made. The system keeps track of where the data is stored. Data and variables can be deallocated as desired leading to holes in the heap. The system knows where the holes are and will use them for additional data storage as more "malloc" calls are made. The structure of the heap is therefore a very dynamic entity, changing constantly. Refer to your 1616/OS Programmers Manual for more details of memory allocation in the 1616.
One limitation placed on users by many compilers for the IBM-PC and compatibles is a limit of 64K for the executable code. This is because the IBM-PC uses a microprocessor with a 64K segment size, and it requires special calls to use data outside of a single segment. In order to keep the program small and efficient, these calls are not used, and the size is limited but still adequate for most programs. This limitation does not apply to 1616/OS users, as the Motorola 68000 has a flat memory space of 16 megabyte.
A heap is an area which can be accessed by the program to store data and variables. The data and variables are put on the "heap" by the system as calls to "malloc" are made. The system keeps track of where the data is stored. Data and variables can be deallocated as desired leading to holes in the heap. The system knows where the holes are and will use them for additional data storage as more "malloc" calls are made. The structure of the heap is therefore a very dynamic entity, changing constantly. Refer to your 1616/OS Programmers Manual for more details of memory allocation in the 1616.