|
3 / 8 / 1
Регистрация: 12.07.2009
Сообщений: 361
|
||||||
Выход за пределы массива при использовании оператора new20.07.2011, 17:01. Показов 2288. Ответов 18
Метки нет (Все метки)
0
|
||||||
| 20.07.2011, 17:01 | |
|
Ответы с готовыми решениями:
18
Выход за пределы массива при инициализации потока Выход за пределы массива при очистке памяти Выход за пределы массива при его сортировке |
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
| 20.07.2011, 17:04 | |
|
оператор [] не выполняет проверку валидности индекса.
ты можешь вообще не выделять память и его использовать, но попадешь ли ты при записи в критическую зону, где запись чревата вылетом (или хуже) или в зону где по случайному обстоятельству всё обойдется - это рандом.
1
|
|
|
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
|
| 20.07.2011, 17:04 | |
|
Это только кажется, что можно. На самом деле портятся данные (возможно полезные) в соседней области данных. Можешь считать, что тебе не повезло. Если бы повезло, то программа бы упала с ошибкой.
1
|
|
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
| 21.07.2011, 08:42 | |
|
Чтобы избежать этой ошибки, нужно использовать std::vector и оператор at(), вместо []
0
|
|
|
|
||||||
| 21.07.2011, 10:11 | ||||||
|
Можно даже при (случайном) выходе за пределы вектора сохранять работоспособность программы, сообщая при этом полезную информацию, например так:
0
|
||||||
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
||
| 21.07.2011, 10:27 | ||
|
С другой стороны, в большинстве случаев использовать operator[] и at() вообще нет необходимости и их применение вызвано дурным тоном программирования и грубым рефакторингом.
0
|
||
|
|
|||
| 21.07.2011, 10:52 | |||
|
Добавлено через 1 минуту
0
|
|||
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
||
| 21.07.2011, 11:00 | ||
|
Но частенько они используются в циклах вида "for( int i; i < ; ++i) vector[i]", т.е. там, где их лучше не использовать. В том числе и с точки зрения производительности.
0
|
||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 21.07.2011, 12:44 | |
|
oxotnik, Итераторы как бэ,
0
|
|
|
|
||
| 21.07.2011, 13:23 | ||
|
как итератором достучаться до i-го элемента без перебора? (если мне нужен рандомный доступ по индексу, ведь для этого собственно вектор и изобретали)
0
|
||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 21.07.2011, 13:27 | |
|
oxotnik, В векторе? Ничего не перепутали?)
iter + idx.
0
|
|
|
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
|
| 21.07.2011, 13:32 | |
|
0
|
|
|
|
||
| 21.07.2011, 14:13 | ||
|
а если не дай бох массивов будет N-ое количество, то лучше сразу повеситься.
0
|
||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 21.07.2011, 15:29 | ||||||
|
oxotnik, Тфу.
0
|
||||||
|
|
|||||||
| 21.07.2011, 15:43 | |||||||
0
|
|||||||
|
Twilight Parasite
154 / 150 / 7
Регистрация: 21.07.2011
Сообщений: 908
|
|
| 21.07.2011, 19:22 | |
|
Используй malloc
0
|
|
|
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
|
| 21.07.2011, 19:27 | |
|
Invader_Zim, что за шутки?
![]() malloc пользуется какой-то запрещённой магией?
0
|
|
| 21.07.2011, 19:27 | |
|
Помогаю со студенческими работами здесь
19
Выход за пределы массива при сортировке подсчетом При копировании массива происходит выход за его пределы (Ошибка 216) Выход за пределы массива
Выход за пределы массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|