Указатель массива 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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