Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / непонятки с strcpy / 4 сообщений из 4, страница 1 из 1
16.05.2015, 19:39
    #38960654
neznayko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятки с strcpy
Код: plaintext
1.
2.
char *scmp = "string";
strcpy(scmp, "String");



после запуска проги выскакивает ошибка
(на вторй строке);
почему?
размерность строк одинакова
...
Рейтинг: 0 / 0
16.05.2015, 19:47
    #38960657
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятки с strcpy
neznayko,

потому что переменная scmp указывает на область памяти для хранения констант, которая защищена от записи.

Вообще то код даже не должен компилироваться, переменная scmp должна быть
const chat *
.
...
Рейтинг: 0 / 0
17.05.2015, 02:36
    #38960723
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятки с strcpy
MasterZivВообще то код даже не должен компилироваться, переменная scmp должна быть
const chat *
Если говорить про С++, то такой запрет введен только в стандарте С++11, а до этого такая конверсия была deprecated.
В С вероятно тоже недавно ввели запрет.
...
Рейтинг: 0 / 0
17.05.2015, 02:38
    #38960725
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятки с strcpy
Но в любом случае модификация таких строк это undefined behavior (и в предыдущих стандартах тоже).
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / непонятки с strcpy / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]