powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вылетает ошибка доступа к памяти borlndmm.dll???
25 сообщений из 60, страница 2 из 3
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38756808
MaxFM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonОно ничем не плохо. Просто программист должен осознавать побочные
эффекты. Усечение разрядной сетки. Отбрасываение дробной части
для float/double. Появление отрицательных значений. Если эти эффекты
для вас были ожидаемыми то всё ОК.

Отбрасывание дроби знал - это меня устраивало и поэтому сделал запас +1.
Появление отриц. значений? это как? когда значение больше макс. возможного int в положит. части?
а как тогда правильно в таких ситуациях поступать?
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38757052
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxFMЗначит если два int делятся то на выходе тоже будет int?


Во даёт, а что ж ты там ещё-то хотел увидеть ?
Морское чудовище Ктулху ?

Да, и ты -- правда бывший дельфист-паскалист ?

MaxFMа чем плохо явное приведение к int результата выражения?


Да в общем ничем неплохо, просто надо знать, что ты делаешь.

Как минимум в вычислениях индексов в массивах это выглядит странно -- там этогоне должно быть в принципе, а если есть -- надо 20 раз подумать.
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38757057
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxFM
Отбрасывание дроби знал - это меня устраивало и поэтому сделал запас +1.


Тоже очень станно. Нафига запас ?
И, тогда, если уж делать запас -- почему такой маленький?
Почему 1 элемент, а не 100, или сразу 1000 ?
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38757229
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxFMа чем плохо явное приведение к int результата выражения?ничем не плохо, просто оно записывается по другому, в данном случае, вот так:
Код: plaintext
1.
( int )( Plan_period/Get_T_r_min_OBJ( i ) )

приоритеты операций имеют, таки, значение
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38758201
MaxFM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!!! сейчас с помощью CG много косяков запалил в коде. как только она у меня работала - понять не могу!!!!!
авторif (arr_sort_obj!=NULL)
{for (int i = 0;i<c_obj_P; i++)
delete[] arr_sort_obj[i];
delete[] arr_sort_obj;
arr_sort_obj=NULL;
}
Скажите - это правильное удаление массива?
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38758206
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxFMСкажите - это правильное удаление массива?
Удаление должно соответствовать созданию. Впрочем, будь оно неправильным, GC бы это не
преминул сказать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38758211
MaxFM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovУдаление должно соответствовать созданию. Впрочем, будь оно неправильным, GC бы это не
преминул сказать.

Если Вы по поводу многомерности и длины массива то тут все правильно.
Проверка того что массив существует через такое условие - это правильно ? или проверку существования массива проводить надо другим способом?
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38758692
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxFMСпасибо!!! сейчас с помощью CG много косяков запалил в коде. как только она у меня работала - понять не могу!!!!!
авторif (arr_sort_obj!=NULL)
{for (int i = 0;i<c_obj_P; i++)
delete[] arr_sort_obj[i];
delete[] arr_sort_obj;
arr_sort_obj=NULL;
}
Скажите - это правильное удаление массива?

Да.
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38758748
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivMaxFMСпасибо!!! сейчас с помощью CG много косяков запалил в коде. как только она у меня работала - понять не могу!!!!!
пропущено...

Скажите - это правильное удаление массива?

Да.Оптимистично. На самом деле, не видя объявления arr_sort_obj, нельза утверждать наверняка...
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38758791
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barlone,


Объявление было. 16613423
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
int **arr=new int*[(int)Plan_period/Get_T_r_min_OBJ(i)+1];   //создание массива плана работы объекта
		   Arr_object[i].T_r_min=Get_T_r_min_OBJ(i);
		  arr[0]=new int[3];
			arr[0][0]= random(Arr_object[i].count_state);            //установка случайного начального состояния
		int j =random(Arr_object[i].states[arr[0][0]].T_r*random(10))+Arr_object[i].states[arr[0][0]].T_r; //установка случайной длительности первичного состояния

			arr[0][1]=0;                               //устновка времени начала состояния
			arr[0][2]=j;                               //установка длительности состояния
		Arr_object[i].Plan_object.count_state=1;       //установка счетчика переходов, что одно состояние уже задано
	   for (int k=1;j<Plan_period+1;k++)
	   { arr[k]=new int[3];
		 arr[k][0]=random(Arr_object[i].count_state);   //установка случайного состояния
		 arr[k][1]=j;
		 arr[k][2]=random(Arr_object[i].states[arr[k][0]].T_r*random(10))+Arr_object[i].states[arr[k][0]].T_r; //установка случайной длительности состояния
		 j =j+arr[k][2];  //протяжка времени что заняло очередное состояние в плане
		 Arr_object[i].Plan_object.count_state++;       //увеличение счетчика переходов
	   }
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38758822
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv, a откуда уверенность что arr_sort_obj и arr - одно и то же? И что в c_obj_P лежит верное значение?
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38758937
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Будет вам. Горячие финские парни. По синтаксису всё ОК.
По семантике - надо автору посчиталь чтобы количество new
равнялось количеству delete. Такое себе простое тестирование
на вшивость.
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38758952
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonБудет вам. Горячие финские парни. По синтаксису всё ОК.
По семантике - надо автору посчиталь чтобы количество new
равнялось количеству delete. Такое себе простое тестирование
на вшивость.Спрашивать о правильности синтаксиса на форуме глупо - компилятор сразу скажет, когда что-то не так. А вот с количеством new и delete там сложно - они в цикле вызываются, причем количество вызовов new вроде бы зависит от результата функции random
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38758964
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarloneА вот с количеством new и delete там сложно - они в цикле вызываются, причем
количество вызовов new вроде бы зависит от результата функции random
GC отлично отлавливает как неосвобождённую память, так и двойное освобождение.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38758966
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Реклама Code Guard детектед :)
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38758980
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок...

drMemory - тоже сильная вещь. Местами даже слишком сильная. Жалко, что valgrind под винду
не существует...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38758985
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarloneMasterZiv, a откуда уверенность что arr_sort_obj и arr - одно и то же? И что в c_obj_P лежит верное значение?

Нет, в этом уверенности нет.
Значит, не было объявления.
Значит, ты прав.
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38758987
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Реклама Code Guard детектед :)
он для незастройщиков бесполезный )) а в стройку он из коробки встроен ))
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38758989
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovBarloneА вот с количеством new и delete там сложно - они в цикле вызываются, причем
количество вызовов new вроде бы зависит от результата функции random
GC отлично отлавливает как неосвобождённую память, так и двойное освобождение.


Почему GC ? Code Guard, значит CG , нет ?
GC -- это другое.
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38759030
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivDimitry Sibiryakovпропущено...

GC отлично отлавливает как неосвобождённую память, так и двойное освобождение.


Почему GC ? Code Guard, значит CG , нет ?
GC -- это другое.Code Guard - хорошая штука.
Вот только на большом сложном проекте не смог дождаться, когда программа запустится с включенным CG. Пришлось шаманить с FastMM.
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38759401
MaxFM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Code Guard - хорошая штука.
Вот только на большом сложном проекте не смог дождаться, когда программа запустится с включенным CG. Пришлось шаманить с FastMM.[/quot]
Всем спасибо! эта штука реально помогла все косяки поймать - до сих пор не понимаю как у меня прога работала с этими недочетами! единственное конечно все же долго она считает!!!!!

Народ можете еще в одном вопросе помочь.....
у меня создаются массив классов каждый из которых рассчитывает для себя большой массив данных.
Этот массив каждый считает сам через созданный им поток. Как только поток все рассчитал он ставит на массиве булевый признак и уничтожается.
Основной поток программы по циклу просматривает все признаки массивов и ждет когда все будут активированы.
Вопрос - нормальный такой подход к проверке выполнения работы потока или есть более быстрый способ проверить что поток завершил свою работу и унижен.
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38759404
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxFMнормальный такой подход к проверке выполнения работы потока
Нет, ненормальный.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38759409
MaxFM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovMaxFMнормальный такой подход к проверке выполнения работы потока
Нет, ненормальный.

Тогда как правильно?
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38759412
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для оконной программы я бы при завершении потока посылал из него сообщение окну, а там
уменьшал счётчик запущенных потоков. Дошёл до нуля - готово.
В консольной программе или сервисе я бы использовал _beginthread вместо TThread +
WaitForMultipleObjects - оно вернётся когда все потоки завершатся.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вылетает ошибка доступа к памяти borlndmm.dll???
    #38760444
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxFMDimitry Sibiryakovпропущено...

Нет, ненормальный.

Тогда как правильно?

Лучше пул рабочих потоков сделать.
...
Рейтинг: 0 / 0
25 сообщений из 60, страница 2 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вылетает ошибка доступа к памяти borlndmm.dll???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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