>>4
1. char *array[123] IS a pointer. It points to the head of an array of strings.
No, char *array[123] is an array of 123 pointers to char.
A pointer to an aray of 123 char would be char (*array)[123]
2. Define and make are interchangeable terminology.
Not according to the standard.
3. GODDAMN, you don't know what the 'stack' and 'heap' are in memory hierarchy?? fucking just kill yourself now.
They don't exist in the standard.