![]() |
|
Модераторы: bsa |
![]()
|
|
| GrafF812 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 3.12.2009 Репутация: нет Всего: нет |
Подскажите пожалуйста можно ли изменять значения индексов массива str при таком объявлении массива? |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
некорректная запись, допустимая "благодаря" наследию С возьмите в привычку, присваивать строковой литерал указателю на константу :
|
|||
|
||||
| azesmcar |
|
||||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
нет, текст "aaa" компилятор поместит в константную область памяти и присвоит твоему указателю адрес. Добавлено через 1 минуту и 23 секунды
или если надо менять - то так
Это сообщение отредактировал(а) azesmcar - 9.9.2010, 09:55 |
||||||
|
|||||||
| GrafF812 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 3.12.2009 Репутация: нет Всего: нет |
azesmcar, однако компилятор Borland C++ Compiler 5.5 позволяет менять константную область памяти, меня это и смутило.
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
||||
|
||||
| GrafF812 |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 3.12.2009 Репутация: нет Всего: нет |
azesmcar, видимо да, а подскажите пожалуйста почему в этом примере:
Появляется ошибка:
Т.е получается, что нельзя передать двумерный массив suit как указатель на константные данные? |
||||
|
|||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
GrafF812, ты внимательно посмотри, в какой строчке ошибка. Думаю, она в строке 15 - ты пытаешься создать массив неконстантных указателей, а инициализируешь константными. Вот он и ругается.
|
|||
|
||||
| GrafF812 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 3.12.2009 Репутация: нет Всего: нет |
bsa, ошибка в 44 строке, когда я пытаюсь принять не константный массив - константной переменной. Если из заголовка функции убрать const, то все работает.
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
||||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
bsa, azesmcar, с каких это пор неконстанту нельзя передать (читай, беспроблемно кастовать) в функцию, как константу?
-------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Читай наши посты внимательно, мы о том же. |
|||
|
||||
| borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
согласен с djamshud, непонятно, почему так можно
а так нельзя
? -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
||||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
borisbn, char *[] и const char *[] - это массивы разных указателей. ты можешь преобразовать один тип к другому, но ты не можешь легко преобразовать указатель на один тип к указателю на другой (указатель на константу видимо имеет серьезные отличия от указателя на неконстанту). Думаю, в этом дело.
|
|||
|
||||
| borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
azesmcar, перед тем, как отправлять сюда я проверил. И то, что нельзя - это не вопрос, а утверждение. А вот почему ?
кстати. интересно, что такое ( см. ниже ) работает
т.е. в определении функции не хватало const после const char * и ещё. Первый const можно убрать и тоже всё компиляется
Это сообщение отредактировал(а) borisbn - 9.9.2010, 17:14 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
![]()
|
| Правила форума "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. |