|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
|||||||||||
Access violation и размерность символьного массива03.06.2012, 02:13. Показов 5524. Ответов 76
Метки нет (Все метки)
Всех приветствую!
Только начинаю работать с консолькой, и вот уже возникли непонятки с символьными массивами. Конкатенирую 2 введенные строчки через разделитель " - ":
Но почему я должен заботиться об этом нулевом символе и плюсовать дополнительно еще один символ в размерности для этого нулевого символа? ![]() Хотя, наверное, мое предположение об 0-ом символе неверно. Тогда что же это?
0
|
|||||||||||
| 03.06.2012, 02:13 | |
|
Ответы с готовыми решениями:
76
Access violation. Выход за границы массива Access Violation при обращении к элементу массива Access violation при выводе массива через функцию |
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
|
| 05.06.2012, 00:20 [ТС] | |
|
0
|
|
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
|
| 05.06.2012, 00:33 [ТС] | |
|
Avazart, хм... а почему так происходит, если убрать cin?
0
|
|
|
|
|
| 05.06.2012, 00:49 | |
|
Ну по тому что записывается "abcde\0\0\0\0\0....\0" (как сказано в цитате).
а в во вторую строку "0123456789" без \0. но как сказано в цитате это зависит от компилятора т.е вероятно может быть в первой строке записалось "abcde\0??????" по тому и мусор Добавлено через 11 минут Вприципе чего гадать- можно просто поэксперементировать
1
|
|
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
|
| 05.06.2012, 00:58 [ТС] | |
|
Avazart, о, значит получается у второй строки сразу после введенных символов оказался /0? Но это же не наш нулевой символ, а просто рандомный мусор - я правильно понимаю?
0
|
|
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
|
| 05.06.2012, 01:02 [ТС] | |
|
Avazart, странно... А почему тут 'a' (из первой строки) вдруг на /0 перезаписалась?
0
|
|
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 05.06.2012, 01:11 | |
|
При вводе строки автоматически записывается ноль символ в конце. При вводе 20 символов он просто пишется за пределы массива, в данном случае в str[20];
0
|
|
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
|||||
| 05.06.2012, 01:14 [ТС] | |||||
|
Avazart, и как-то
В общем, какой-то хитрый рандом). Добавлено через 42 секунды Toshkarik, Ну тогда возвращаемся... К... Да собственно к первой мессаге моей - как тогда объясните AV, если на str[20] у меня записался /0.Добавлено через 2 минуты
0
|
|||||
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
||||||
| 05.06.2012, 01:16 | ||||||
|
Enter это символ новой строки '\n', он никак не относится к данной операции. Просто так реализована перегрузка оператора >> на ввод строки. При
1
|
||||||
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
||
| 05.06.2012, 01:20 [ТС] | ||
|
Toshkarik,
Дык все-таки почему в моем случае возникает тогда Access Violation, если в конце szString2 записывается /0? По ячейке szString2[20]. И должно быть все норм впоследствии... А возникает AV. М?
0
|
||
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 05.06.2012, 01:21 | |
|
0
|
|
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 05.06.2012, 01:23 | |
|
С чего это норм? Данные записываются за пределы массива, на что и указывает ошибка. Я думаю, что просто реализация исключений у всех компиляторов разная.
0
|
|
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
||
| 05.06.2012, 01:27 [ТС] | ||
|
Avazart, чего-то не понял... Вы перезаписал \0 получается?
И что это нам дает?Toshkarik,
0
|
||
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 05.06.2012, 01:28 | |
|
А на чем? На чтении?
Это в принципе без разницы. Просто сам факт доступа к данным за пределы массива вызывает исключение в функции strcat().
0
|
|
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
||
| 05.06.2012, 01:44 [ТС] | ||
|
Toshkarik,
Но если ниже использовать strcat, которая будет считывать из этой строчки, то почему-то возникает ошибка, хотя она должна дойти до этого знака '^' и успокоиться...
0
|
||
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
|
| 05.06.2012, 01:49 [ТС] | |
|
Чего-то пипец у меня каша в голове теперь...
0
|
|
| 05.06.2012, 01:49 | |
|
Access Violation at address. при записи в StringGrid двумерного массива Ошибка 'Access violation at address 00403EF4' при вводе массива Ошибка (access violation) при обращении к элементу динамического массива структур Обращение к элементам массива порождает ошибку "Access violation" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время?
Никакой пенсии. Никакого нового. . .
|