Препод говорит, что 10 не в диапазоне памяти.Можно указать число в квадратных скобках от 0 до 9.
Правильно говорит ;-)
int* x = malloc(10 * sizeof(int));
- размещает массив из 10-ти элементов, x[10] ...
- элементы массива из 10-т элементов индексируются так (начиная с 0): x[0], x[1], ... x[8], x[9] (10 штук)
- индексация x[10] - за пределами выделенной массиву памяти, 11-й элемент,
очень грубая ошибка.