Как задать размер массива через аргументы функции?
Допустим, имеется одномерный массив arr (как бы m*n элементов). В функцию передается он, а также длина и ширина создаваемого из него двумерного массива. В итоге что-то вроде этого:
int * foo(int * arr, int m, int n) {
int tempArray[m][n];
...
...
}
Но не дает задавать так размеры ("m и n должны иметь константное значение). Как тогда это можно сделать?
Но не дает задавать так размеры ("m и n должны иметь константное значение). Как тогда это можно сделать?
С99 позволяет. Используйте уже С99, 18 лет прошло с момента его принятия.
Связанный вопрос/ответ про передачу многомерного массива прямо через аргументы функции: Как засунуть n — мерный массив в аргумент функции?