Top.Mail.Ru
Ответы

Вопрос по 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() - плохая практика. Такие функции завалят многопоточность.