I'm a complete beginner, but I'd like to learn how to program. I really started 2 weeks ago. So I tried the common exercise, aka the multiplication table, but I tried to add little things I learnt recently in order to challenge myself, like *functions*, *tables* and *pointers* even if it's useless here. The code works well, but I have some warnings when compiling, and I don't know why, like `*pointSize = NULL;` Besides, I'm sure my code could be cleaned up, so I'd like you to tell me how I can improve it. Here's the result: [![enter image description here][1]][1] ```c /* Multiplication table */ #include <stdio.h> short tableSize; // Number of multipliers short question (short *pointSize); // Ask user how many multipliers void error(short nbUser); // Cherck error void multTable(); // The table void main () { short i = 1, nbMultipliers; question(&nbMultipliers); error(&nbMultipliers); tableSize = nbMultipliers; /* header */ printf(" |"); for (i = 1; i <= tableSize; i++) { printf(" %3u |", i); } printf("\n"); for (i = 1; i <= (tableSize + 1); i++) { printf ("========"); } printf("\n"); /* end header */ multTable(); // the table } /* Ask user how many multipliers */ short question (short *pointSize) { *pointSize = NULL; printf("How long this table should be ? (0 - 50) "); scanf("%u", pointSize); printf("\n"); } void error (short nbUser) { if (nbUser < 0 || nbUser > 50) { printf("Error : you must enter a number between 0 and 50"); exit(); } } /* end Ask user how many multipliers */ void multTable() { short i = 1, j = 1; short line[50] = {0}; for (j = 1; j <= tableSize; j++) { printf(" %3u I", j); for (i = 1; i <= tableSize; i++) { line[i] = i*j; printf (" %3u |", line[i]); } printf("\n"); for (i = 1; i <= (tableSize + 1); i++) { printf ("-------+"); } printf("\n"); } } ``` [1]: https://i.sstatic.net/Ci1VZ.png