![]() |
|
Модераторы: bsa |
![]()
|
|
| Vadimka1234 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 5.9.2012 Репутация: нет Всего: нет |
Всем привет, помогите плиз разобраться вот с чем. Вот код:
В нем я создаю массив типа int**. Затем я пытаюсь получить ссылку на первый элемент массива и изменить его.Но ничего не выходит. Если писать просто что-то типа
то таким образом я меняю указатель q, чем это отличается от случая с массивом мне пока не ясно. |
||||
|
|||||
| Чупакабро |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 27.2.2007 Репутация: нет Всего: 4 |
Может в квадратных скобках стоит указать количество элементов? Возвращать ссылку на локальную переменную? Может я плохо учился в школе, но мне кажется, что лучше так: int* getelem(int i) Это сообщение отредактировал(а) Чупакабро - 5.7.2014, 10:59 --------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00459B8B in module 'Project1.exe'. Read of address 0000019C'. Process stopped. Use Step or Run to continue. |
|||
|
||||
| Vadimka1234 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 5.9.2012 Репутация: нет Всего: нет |
нет так нельзя потому что в таком случае нельзя будет писать getelem(0)=new int так как выражение не будет l-value; Поэтому-то я и указывая тип возвращаяемого значения как int*&. А вернув int* вы получите просто новый указатель который ссылается туда же куда и mass[0], а , нужна именно ссылка на этот указатель. Тогда значение в массиве можно будет поменять через новый указатель.
насчет этого, мне кажется это не очень принципиально для данного вопроса. |
||||
|
|||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
Vadimka1234, что вы хотите получить в итоге?
В вашем коде ошибки чуть ли не вв каждой строке И понять что вы хотели, трудно. Зачем например, вы выделяете каждый инт отдельным new? в общем чтоб получить нормальный ответ, нужно задать нормальный вопрос. |
|||
|
||||
| Vadimka1234 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 5.9.2012 Репутация: нет Всего: нет |
Хочу я следующее: получить массив скажем из десяти целочисленных указателей. Затем написать функцию которая бы принимала индекс и возвращала соответсвующий элемент массива назовем его например q.
После этого когда я в программе буду писать например q=new int(5), должен меняться соответсвующий элемент массива. То есть, есть маиссив int** mas. Получаю к примеру первый элемент int* q=getelemAt(0). После этого пишу q=new int(5). В результате первый элемент массива должен изменится тоже. Надеюсь объяснил понятно) |
|||
|
||||
| volatile |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
int ** mass = new int*[10];
Ну а об выделении каждого инт, отдельным нью, я даже и писать не хочу. с утечками сами разбирайтесь Добавлено через 4 минуты и 25 секунд ваш код просто не имеет практического смысла. я привел примеры, просто в академическм смысле, чтоб разобрались в синтаксисе. |
||||||
|
|||||||
| Vadimka1234 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 5.9.2012 Репутация: нет Всего: нет |
Я так пробовал, но чето не получается. Элемент в массиве по прежнему указывает на прежний адресс
|
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
||||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |