0 / 0 / 0
Регистрация: 05.06.2015
Сообщений: 6
|
||||||
1 | ||||||
При освобождении памяти под двумерный динамический массив way выскакивает EAcessViolation05.06.2015, 15:22. Просмотров 545. Ответов 11
Метки нет Все метки)
(
Здравствуйте. Помогите, пожалуйста, разобраться с такой проблемой. При освобождении памяти под двумерный динамический массив way выскакивает ошибка EAcessViolation и т.д. Пробовал добавлять этот масив как поле в Form1 в файле Unit1.h. Помогло. Но тогда приходится объявлять этот массив как локальный, а мне он нужен для выполнения других функций (т.е. надо, чтобы был глобальный). Не знаю как разрешить эту проблем. Спасибо за ответы.
0
|
|
05.06.2015, 15:22 | |
Программа валится при освобождении памяти под динамический массив Выделение памяти под динамический двумерный массив в структуре Косвенное обращение к методам. Освобождение памяти,выделенной под двумерный динамический массив Ошибка при выделении памяти под двумерный массив |
|
Супер-модератор
![]() ![]() |
||||||
05.06.2015, 15:28 | 3 | |||||
0
|
0 / 0 / 0
Регистрация: 05.06.2015
Сообщений: 6
|
|
05.06.2015, 15:32 [ТС] | 4 |
way_count может быть произвольным. Где-то до 1000.
Я в обработчике Батон2 задал его равным 10.
0
|
0 / 0 / 0
Регистрация: 05.06.2015
Сообщений: 6
|
|
05.06.2015, 15:50 [ТС] | 6 |
В обработчике Батон 2 сначала определен way_count, а потом выполняется выделение памяти в цикле под массив. Или я что-то путаю? Если можно напишите код для чайника.
Добавлено через 12 минут И если нельзя так выделять память, как это сделал я с массивом way, то почему тогда массив a не вызывает никаких ошибок? Хотя он тоже динамический и значение num задается пользоваетелем.
0
|
Pure Free Digital Ghost
4214 / 1674 / 323
Регистрация: 06.01.2013
Сообщений: 4,287
|
||||||
05.06.2015, 15:55 | 7 | |||||
Потому что первым делом начинают лезть в массив way
0
|
0 / 0 / 0
Регистрация: 05.06.2015
Сообщений: 6
|
|
05.06.2015, 16:01 [ТС] | 8 |
В обработчике Батон1 в массив а также лезут
num=StrToFloat(Edit1->Text); for(int i=0;i<num;++i) a[i]=new float[num]; Почему здесь можно? И Батон1 работает без ошибок.
0
|
Супер-модератор
![]() ![]() |
|
05.06.2015, 16:03 | 9 |
И здесь нельзя, просто на твоем компьютере в текущей сессии Windows, при этом расположении Луны на небе ошибка еще не проявилась. Будешь ждать, пока проявится, и потом исправлять, или исправишь сразу? Выбирай.
0
|
0 / 0 / 0
Регистрация: 05.06.2015
Сообщений: 6
|
|
05.06.2015, 16:53 [ТС] | 10 |
А в чем тогда динамичность массива, если его размер нужно знать заранее? И как сделать его по-настоящему динамическим, т.е. чтобы пользовател вводил его размерность, и только тогда выделялась память?
Добавлено через 36 минут Как добиться того, чтобы объявляемый в одном обработчике динамический массив, был глобальным и обрабатывался другими функциями програми?
0
|
Супер-модератор
![]() ![]() |
||||||
05.06.2015, 17:16 | 11 | |||||
Динамичность - в том, что размер задается в рантайме, а не на этапе компиляции. Вот к такому:
1
|
Тематические курсы и обучение профессиям онлайн Профессия Разработчик на C++ (Skillbox) Архитектор ПО (Skillbox) Профессия Тестировщик (Skillbox) |
0 / 0 / 0
Регистрация: 05.06.2015
Сообщений: 6
|
|
05.06.2015, 18:25 [ТС] | 12 |
Спасибо за детальный ответ.
А массив, созданный таким образом, будет локальным или глобальным? Другие функции, кроме той, в которой он объявлен, смогут к нему обращаться? Добавлено через 7 минут volvo, огроменное спасибо. Заработало.
0
|
05.06.2015, 18:25 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.
При попытке создать динамический одномерный массив, под него выделяется только 8 байт памяти Переделать программу под двумерный динамический массив Выделение памяти под динамический массив Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |