|
|
|
сбои в программе
|
|||
|---|---|---|---|
|
#18+
Вроде весь проект работает корректно, но при частом запуске за один сеанс некоторых функций теряются записи из структуры: пишется <null> вместо них, сносятся некоторые файлы, может вылететь программа или заголовки меню превращаются в набор всяких знаков. подобные ошибки наблюдаются и паре других подобных функций, буду очень признателен за помощь! Вот одна из таких функций: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 19:20 |
|
||
|
сбои в программе
|
|||
|---|---|---|---|
|
#18+
Может переполняется буфер или дело в динамической памяти... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2007, 06:11 |
|
||
|
сбои в программе
|
|||
|---|---|---|---|
|
#18+
где пишется нулл вместо них? Попробуй удалить tmp и p, но вобще не в этом должно быть дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2007, 14:57 |
|
||
|
сбои в программе
|
|||
|---|---|---|---|
|
#18+
(попробуй удалять в конце функции) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2007, 14:57 |
|
||
|
сбои в программе
|
|||
|---|---|---|---|
|
#18+
если вставить строчку if(tmp==NULL) { printf("Error!"); getch(); return; } то раза с 7 и вплоть до конца сеанса она и срабатывает. поставил везде удаление, и размер увеличил до large. Вроде проблема исчезла (на 100% не уверен, но достаточное количество времени можно работать без сбоев). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2007, 16:06 |
|
||
|
сбои в программе
|
|||
|---|---|---|---|
|
#18+
Забыл сказать: компилятор borland c++: 3.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2007, 16:18 |
|
||
|
сбои в программе
|
|||
|---|---|---|---|
|
#18+
Дональдакесли вставить строчку if(tmp==NULL) { printf("Error!"); getch(); return; } то раза с 7 и вплоть до конца сеанса она и срабатывает.так бывает, когда память заканчивается и new возвращает null что значит «увеличил до large»? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2007, 16:19 |
|
||
|
сбои в программе
|
|||
|---|---|---|---|
|
#18+
теперь понятно, что значит large ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2007, 16:20 |
|
||
|
сбои в программе
|
|||
|---|---|---|---|
|
#18+
А почему память ограниченна таким маленьким объемом? Это где-то устанавливается в настройках? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 09:58 |
|
||
|
сбои в программе
|
|||
|---|---|---|---|
|
#18+
new есть, delete ни одного. И чему тут удивляться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 10:13 |
|
||
|
сбои в программе
|
|||
|---|---|---|---|
|
#18+
ДональдакА почему память ограниченна таким маленьким объемом? Это где-то устанавливается в настройках?В large модели тебе доступно 64K. Больше не получается адресовать 16 битным числом. Microsoft давно решило эту проблему, перейдя к 32 битному представлению. Однако, твой компилятор (borland c++: 3.1) не способен генерировать такой код. Если освобождать ненужную память, можно выкрутиться. Адресовать более 64К можно, используя huge указатели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 10:20 |
|
||
|
сбои в программе
|
|||
|---|---|---|---|
|
#18+
Всем спасибо за ответы! Надеюсь последний вопрос: .exe файл скомпилированный при large модели, сохраняет эти свойства, даже если его запускать на другом компьютере, где компилятор настроен, например на small? т.е. на скомпилированный .exe файл настройки текущего компилятора уже никак не влияют? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 14:29 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34605052&tid=2028643]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
212ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 544ms |

| 0 / 0 |
