Вопрос по C++.Что означает эта строчка int** newArray(int** a, int n, int m)
Не могу понять.Не шарю
Эта строка описывает функцию с именем newArray, которая принимает следующие аргументы:
int** a - указатель на указатель на целое число (то есть двойной указатель на int). Этот аргумент предполагает, что в функцию передается двумерный массив целых чисел.
int n - целое число, обозначающее количество строк в двумерном массиве.
int m - целое число, обозначающее количество столбцов в двумерном массиве.
Возвращаемое значение функции
также является указателем на указатель на int.
По сути, эта функция создает новый двумерный массив целых чисел размером n x m и возвращает указатель на первый элемент этого массива.
Когда функции нужно изменить что-то, какую-то область в памяти, то пишут:
int func(char*,int)
Когда нужно СОЗДАТЬ буфер, или работать с массивом, то пишут:
int func(char**,int) - это эквивалентно int func(char *mem[])
Бывает, ещё нужно создать массив структур, тогда:
int func(char***,int)
Важно помнить, что хорошая функция обычно возвращает коды ошибок. Возвращать указатель "через зад" int* func() - плохая практика. Такие функции завалят многопоточность.