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

Указатель на многомерный массив - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ рекурсия http://www.cyberforum.ru/cpp-beginners/thread985094.html
помогите пожалуйста написать этот код через рекурсию, или не используя объявление массива и не используя циклы #include <iostream> using namespace std; int main() { int a = 0; int arr;
C++ Однонаправленный список элементов Всем привет. Помогите подправить задачу. Суть задачи следующая- создать список, добавить 3 функции(добавление,удаление,показ элементов).Основная проблема в функции добавления.Заранее спасибо! #include<iostream> using namespace std; struct elem{int data;elem *pe;}; class Spisok {private: elem *pnov,*pbegin,*ptek; public: void add(int w); int show(void); http://www.cyberforum.ru/cpp-beginners/thread985077.html
C++ Селекторы и модификаторы
Помогите пожалуйста к этому коду дописать селекторы и модификаторы. Я просто молю. #include "stdafx.h" #include "conio.h" #include <iostream> #include <string.h> using namespace std; class Animal {
Вычислить и вывести на экран значения функции y C++
Вычислить и вывести на экран значения функции y = f(x) в точках x0=xнач, x1=x0+h, x2=x1+h, … xN = xкон, где h =(xкон – xнач)/N. Функция y = f(x) зависит от параметра a. Вид функции y = f(x) приведен в таблице: e^{x+1.7a}
C++ Как строить круговые диаграммы? http://www.cyberforum.ru/cpp-beginners/thread985068.html
Всем доброго времени суток! подскажите плиииз, как строить круговые диаграммы? graphics.h не подходит, учусь на VS 2008!
C++ функции Функции могут возвращать несколько значений? Если да то как? return a; return b; Это явно не сработает подробнее

Показать сообщение отдельно
Darthriddikc
10 / 10 / 0
Регистрация: 23.12.2012
Сообщений: 45
22.10.2013, 22:04     Указатель на многомерный массив
Здравствуйте, я никак не пойму... вот например для того чтобы инициализировать указатель на двумерный статический массив, указатель должен знать размер одного, назовём его, блока данных, состоящего из элементов, содержащие значения. Например:
C++
1
2
3
int arr[3][5];
int **ptarr=arr; // так не правильно, будет ошибка, так как указатель ptarr не знает, что в одном блоке 5 значений int
int (*ptarr)[5]=arr; // так правильно, так как создаётся указатель на массив из 5 значений int
и с указателем ptarr можно будет делать всё, как и с массивом arr
А вот в динамическом двумерном массиве наоборот инициализация указателя только как в строке 2. Например:
C++
1
2
3
4
5
int **arr=new int*[3];
for(i=0; i<3; i++)
    arr[i]=new int[5];
int **ptarr=arr; // проглатывает на ура
int (*ptarr)[5]=arr; // пишет ошибку что из int** не может преобразовать в int(*)[5]
Откуда в этом случае указатель ptarr узнаёт о размере одного блока arr, понятно, что в строке 1 выделяется память под массив указателей, но и статический массив – это ведь по сути константный указатель (хотя где-то я читал, что это не так, и он приводится к указателю, только при обращении к нему). Вообще в чём отличие тогда статического от динамического массива кроме их определения и что они хранятся в разной памяти?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru