![]() |
О, ребяты! 8-#
Этого класса злобного я отовседа поубирал, и многое ожило! Раньше падение проги скрывало многие интересности, както: now=new class DATA; выполняется 2 раза, на 3..n now получает адресс предыдущей ячейки списка.. уж чё я с ним не делал. Нашёл где основная собака зарыта - если не считать отрубленного конструктора и дохлого "new class DATA" то очевидно, что строка strcpy(str,D->Nnow->name); - и есть мой найтмаре. 8-)) (продолжаю уверять всех, что до момента падения все переменные содержат свои данные в целости и сохранности) Как это лечится? ... меня во вторник расстреляют если это не заработает. |
Ну ты всётаки даёшь!
Поражаюсь тому, что ты всё приходишь и приходишь на этот форум с этим вопросом! Но я тебя понимаю! Я тоже ФАНАТ flasher.ru! :cool:
Насчёт вторника, это плохо... :( Так, а теперь по делу: Возьму для примера конец конструктора, ну думаю код ты и сам узнал. Там у тебя все меню описываются похоже и imho с ошибкой. Код:
basemenu=new char*[3]; addmenu=new char[][2]; Получается, что следующий за объявлением цикл не нужен. Код:
for(i=0;i<2;i++) Код:
strcpy(addmenu[0],"Добавить запись "); Удачи! |
2 nme После твоего варианта у меня комп виснет 8-)
Пипль! Я нашёл обшибку. Вот она. (в комментариях) if(a==13) { if(type==1) { D->Nnow=D->Nbegin; for(i=0;i<(s_pos-1)+dif;i++) D->Nnow=D->Nnow->next; /*strcpy(str,D->Nnow->name);*/ } if(type==2) { D->Pnow=D->Pbegin; for(i=0;i<(s_pos-1)+dif;i++) D->Pnow=D->Pnow->next; /*strcpy(str,D->Pnow->phone);*/ } if(type==3) { D->Anow=D->Abegin; for(i=0;i<(s_pos-1)+dif;i++) D->Anow=D->Anow->next; /*strcpy(str,D->Anow->addr);*/ } Я десяток часов убил, чтоб узнать на 99%, что моя проблема - это ctrcpy() !!!!! Кто хоть что то понимает - посмотрите, подумайте - что можно проверить, какние несоответствия может вызвать эта больная функция. А я пока свой собственный strcpy напишу 8-) |
Свой собственый strcpy() не спас. Чушь какаято...
|
Всё, победа.. мать моя. Сколько мучений.
Оказалось - gettext() - puttext() buffer необходимый ему считаеться как 2байта*Х*У , весь экран - это 80*25*2 - 2000 байт. или 1000 int. Я заказываю 1000 инт - всё падает, я кладу 2000 инт - всё пашет - я успакоился и забыл. Щас методом тупого вырубания строк программы одну за одной нашёл, что падаем мы на этих уродах. Я беру, и леплю максимально используемые щас значения Х и У - получаю 61*19*2. Ставлю. Работает. Сукиииииииии 8-# А когда мненадо будет не 61 а 62 опять всё упадёт?? |
Такое ощущение что ты сам себе рассказываешь, блин может я просто оч перегружен своим Г. но очень мало понял из твоей проги. :D
То стоит, то не стоит, то ваще падает :rolleyes: Что за прога ЗЫ сори за оффтоп Блин у тебя что С++ любимый язык??? Просто не которые люди любят тараканов ядерными бомбами. А ты как?? |
Прога - БД.
А меня так бросает - то в жар то в холод - т.к. при работе с памятью прога падает в совершенно случайный момент и имеет не связанные с источником, на первый взгляд, последствия. С++ - другого не знаю, да мне и нельзя - это курсовик, где С++ условием поставлен. А что ещё можно? я б билдер поучил - пусть меня научат. Столько всего я бы поучил! 8-))) Время только...... |
ЗЫ у меня еще хуже :)
LISP, ASM, RTL - для романтики :D C, C++ - для понта Pascal - придурки в институте учат :( Ada - так сам пока не понял JScript, Flash5 AS - для веба Зы может че забыл :) |
эээ...ммм...с каких пор 80*25*2=2000?
|
гых, обзнался 8-)
серано ни на 1000 ни на 2000 не работает 8-) А вот мож тут кто подскажет ишшо - есть массив n мерный..... Ну короче на простом примере a[2][2]; как мне узнать - сколько строк в массиве "а"? для столбцов зделаю strlen(a[0]), а как быть со строками? |
| Часовой пояс GMT +4, время: 12:56. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.