Here is my problem - I need to create an array of size X, where X is an argument from the command line (argv[1]), and each array row can hold 80 bytes worth of data. But I must use malloc to make sure that there is enough space to store this array, in case the user supplies some very large number in the command line argument. My problem is that I can't figure out how to specify that each row can only hold 80 bytes, and that array sizes have to be constants at compile time, but i'm getting my size from a command line argument. Here is what I have so far (some error checking code has been omitted):

Code:
char (*aa)[80]; // 80 bytes
int stackSize;

stackSize = argv[1];

aa = malloc(stacksize * 80);
// will return null if malloc cannot allocate enough space
This is what someone else has helped me with - I do not understand why 80 would be in the brackets? I thought whatever size (how many rows) I wanted the array to be (i.e. what I get from the command line argument) would be in the brackets, but I can't do this because it is not known at compile time.

Any help is much appreciated