|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.06.2011, 22:46 | #1 |
Форумчанин
Регистрация: 01.02.2007
Сообщений: 785
|
Печать элементов массива с использованием указателя
Код:
А ожидаю я, что он будет работать также как и cout << m[i][j]. При использовании закомментированного варианта на экран выводятся левые значения. g++, ubuntu.
Изо всей благодати
В руках крепко сжатых Я донесу только капли |
23.06.2011, 23:02 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
потому что у вас не статический массив, а динамический, он прерывистый, состоит из кусков, потому нельзя так делать.
выведите себе адреса каждой ветки массива. for(int i=0;i<rows;i++)cout<<arr[i]<<endl; и увидите сами. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
23.06.2011, 23:04 | #3 |
С++
Форумчанин
Регистрация: 22.09.2008
Сообщений: 791
|
Код:
Ваш вариант верен в случае если мы одномерный массив используем вместо двухмерного, типа Код:
Форматируйте код, будьте людьми.
|
23.06.2011, 23:09 | #4 | ||
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
Цитата:
Код:
Код:
и кстати Цитата:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance Последний раз редактировалось pproger; 23.06.2011 в 23:17. |
||
24.06.2011, 00:24 | #5 | |
Форумчанин
Регистрация: 01.02.2007
Сообщений: 785
|
2 Пепел Феникса - за ответ спасибо, ты пояснил очень четко (впрочем, как всегда) именно то, что я не понимал - память под массив в данном случае выделятся не из последовательных кусков. Теперь понимаю почему левые значения на экране.
2 Granus - с твоим примером все ясно, этот способ я рассматривал еще до того, как написал сюда вопрос. За ответ спасибо. Код:
Насколько я понял ты говоришь мне, что запись Код:
Код:
И ее можно использовать в функции print_mij(int** m, int dim1, int dim2) Но что значит твой вопрос Цитата:
Если кто против, что общаюсь на ты - напишите.
Изо всей благодати
В руках крепко сжатых Я донесу только капли Последний раз редактировалось Roof; 24.06.2011 в 00:27. |
|
24.06.2011, 00:35 | #6 |
C++,DirectX/OpenGL
Форумчанин
Регистрация: 09.01.2011
Сообщений: 422
|
|
24.06.2011, 00:59 | #7 |
Форумчанин
Регистрация: 01.02.2007
Сообщений: 785
|
An1ka - понятно, это упустил из виду. Спасибо.
Изо всей благодати
В руках крепко сжатых Я донесу только капли |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывод элементов массива.Изменение элементов массива. | Vesnushka18 | Помощь студентам | 6 | 09.06.2011 13:05 |
определения массива как указателя | jon888 | Общие вопросы C/C++ | 2 | 09.05.2011 13:00 |
Си - Выделение кучи -> инициализация указателя -> запись массива | Renat060888 | Общие вопросы C/C++ | 3 | 22.11.2010 19:31 |
Инкремент для указателя массива структур | Valter | Общие вопросы C/C++ | 6 | 31.05.2010 18:30 |
В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов массива | HazelHen | Общие вопросы C/C++ | 2 | 29.03.2009 15:16 |