Форум программистов, компьютерный форум CyberForum.ru

Передача двумерного динамического массива чисел в функцию - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Рисовать график wav файла с зумом по времени - на чем? http://www.cyberforum.ru/cpp-beginners/thread1245145.html
Задача - есть моно wav файл, надо сделать его визуализацию во временнОй области с прокруткой и изменением масштаба по времени в широких пределах. Предложил рисовать с помощью точек и линий в GDI WinApi, коллега сказал что это будет кустарщина, надо что-то готово библиотечное, встречно предложил MS Chart. Почитал, он под NET, насколько я понимаю. Меня как-то смущает (хотя не могу сказать почему,...
C++ Преобразование типов. Откуда берётся double? Доброго времени суток всем.Объясните кто-нибудь почему компилятор в предупреждениях пишет : "warning C4244: =: преобразование "double" в "float", возможна потеря данных" я же в программе double никак не трогаю. int q; float m,st; short d; do { cout << "Количество минут : "; cin >> m; http://www.cyberforum.ru/cpp-beginners/thread1245142.html
Поменять местами минимальный и максимальный элемент в каждом столбце матрицы C++
Дано матрицу размера 5 x 10 Преобразовать матрицу, поменяв местами минимальный и максимальный элемент в каждом столбце.
C++ Вывести все четные элементы последовательности
Дано натуральное число n и действительные b1, b2, ..., bn. Вывести на экран по 3 числа в строке все четные элементы последовательности.
C++ Зачем нужно закрывать файл? http://www.cyberforum.ru/cpp-beginners/thread1245020.html
Зачем надо в конце выполнения программы использовать такую команду? stream.close();
C++ Разработать рекурсивную функцию, не возвращающую значений Даны первый член и знаменатель геометрической прогрессии. Написать рекурсивную функцию для нахождения n-го члена и суммы п первых членов прогрессии. #include "iostream" #include "conio.h" #include "math.h" using namespace std; void Progres(int n, float q,float b1,int i) { float b,s; if (i==1) { подробнее

Показать сообщение отдельно
DrOffset
6416 / 3790 / 876
Регистрация: 30.01.2014
Сообщений: 6,575
21.08.2014, 08:51     Передача двумерного динамического массива чисел в функцию
Цитата Сообщение от _20_ Посмотреть сообщение
Объясните, пожалуйста, почему.
Во-первых запись
C++
1
int sheet[block->w][block->h];
по стандарту некорректная, если w и h не константы времени компиляции.
у тебя скорее всего gcc или mingw - там это работает засчет местного расширения языка.
Но это к проблеме не относится, просто замечание по ходу.

По поводу приведения типа массива к указателю. Преобразование всегда одно, т.е. на один уровень.
Например имеем массив T a[10], преобразование к T *, где T = int, получаем int * p; - указатель на int
Например имеем массив T a[10][10], преобразование к T *, где T = int[10], получаем int (*p)[10]; - указатель на массив из 10 int.
Т.е. мы не можем перепрыгнуть через два уровня, преобразуется всегда первый.
В случае с динамическим выделением у нас нет никаких массивов, у нас сразу указатели. Т.е. преобразование не требуется.

Преобразовывать насильно через (int**)a; кстати нельзя - работать корректно не будет. Достаточно представить как расположены в памяти элементы и станет понятно почему.
 
Текущее время: 03:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru