Указатель массива C++ на указательC++

Программы на C++. Форум разработчиков
Anonymous
Указатель массива C++ на указатель

Сообщение Anonymous »

Код: Выделить всё

// Declaring a variable:
int* buf = new int[max_size];

// Filling in the data:
for (int i = 0; i < max_size; ++i) buf[i] += i;

// We pass it to the function:
process(&buf);
Функция реализации:

Код: Выделить всё

void process(const int* const* buf)
{
int a = 0;
int ch = 1;
for(int c = 0; c < ch; ++c)
for (int i = 0; i < max_size; ++i)
a += buf[c][i]; // ???
}
Как и по какому правилу мой массив маскируется под массив массивов?

Код: Выделить всё

a += buf[c][i];
Попробуйте здесь: https://www.programiz.com/online-compiler/2VrwQHT2IG5pE
P S:
Я думаю, это потому, что здесь &but мы передаем адрес части const float* const* buf.
Но, может быть, этому есть более академическое объяснение?

Подробнее здесь: https://stackoverflow.com/questions/791 ... to-pointer

Вернуться в «C++»