Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: ошибка TCustomForm.Destroy */ inline __fastcall virtual ~TForm(void) { }  (Прочитано 14373 раз)
0 Пользователей и 1 Гость смотрят эту тему.
nitrikc
Интересующийся

ru
Offline Offline
Пол: Мужской
nitrikc


« : 31-05-2010 21:29 » new

люди у меня такая ошибка в коде. я не могу понять что мне обнулить надо... не могли бы посмотреть и помочь.
Код:
void __fastcall TForm1::N7Click(TObject *Sender)
{Memo1->Text="";
Memo1->Text="Откройте файл";
char *fname;
int k,h,i=0,y=0,j;
FILE *f;
FILE *n;
if (OpenDialog1->Execute())
{fname=OpenDialog1->FileName.c_str();
f=fopen(fname,"rb");
n=fopen("routput.txt","a");
Memo1->Lines->LoadFromFile(fname);
String sTmp = Memo1->Text;
for ( int i = 0; i<sTmp.Length(); i++){k=sTmp.Length();}
if (k!=27)
{AnsiString Mes="Количество символов не равно 27! Исправьте файл!";
ShowMessage(Mes);}
else
{h=2;
char **a; //Указатель на указатель =)
char **b;
char **c;
char a1,a2; //Размеры матрицы
char b1,b2;
char c1,c2;
a = new char*[h]; /*Выделили память под x-указателей, которые будут //указывать на строки*/
b = new char*[h];
c = new char*[h];
char *v;
v = new char [k-1];
for(int i=0;i<=h;i++)
{a[i] = new char[h];} /*Каждому указателю выделяем память под y-элементов типа int*/
for(int i=0;i<=h;i++)
{b[i] = new char[h];}
for(int i=0;i<=h;i++)
{c[i] = new char[h];}
for(int i=0;i<k;i++)
{fscanf(f,"%c",&v[i]);}
fclose(f);
f=0;
for(int i=0;i<=h;i++)
{for(int j=0;j<=h;j++)
 {a[i][j]=v[y];
Memo2->Lines->Add(a[i][j]);
 y++;}}
for(i=0;i<=h;i++)
{for(int j=0;j<=h;j++)
 {c[i][j]=v[y];
 Memo4->Lines->Add(c[i][j]);
 y++;}}
for(int j=h;j>=0;j--)
{for(int i=h;i>=0;i--)
 {b[i][j]=v[y];
 Memo3->Lines->Add(b[i][j]);
 y++;}}
for(i=0;i<k;i++)
v[i]=0;
i=0;
for(a1=0;a1<=h;a1++)
{for(a2=0;a2<=h;a2++)
{v[i]=a[a1][a2];
i=i+3;}}
i=1;
for(b1=0;b1<=h;b1++)
{for(b2=0;b2<=h;b2++)
{v[i]=b[b1][b2];
i=i+3;}}
i=2;
for(c1=0;c1<=h;c1++)
{for(c2=0;c2<=h;c2++)
{v[i]=c[c1][c2];
i=i+3;}}
for (i=0;i<k;i++)
fprintf(n,"%c",v[i]);
fclose(n);
n=0;


}}}
« Последнее редактирование: 31-05-2010 21:41 от Finch » Записан

Не спорь с дураком, он сначала опустит до своего уровня, а потом задавит опытом.
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 31-05-2010 21:43 » 

nitrikc, Ты хоть сам разбираешся в своем коде? Очень плохое форматирование кода, как правило ведет к еше большим ошибкам при написании. Кстати у тебя деструктор у формы определен?
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
nitrikc
Интересующийся

ru
Offline Offline
Пол: Мужской
nitrikc


« Ответ #2 : 31-05-2010 21:44 » 

nitrikc, Ты хоть сам разбираешся в своем коде? Очень плохое форматирование кода, как правило ведет к еше большим ошибкам при написании.
начал писать только. не все сразу приходит)) вот и прошу помощи. код писал я. разбираюсь в нем.
Записан

Не спорь с дураком, он сначала опустит до своего уровня, а потом задавит опытом.
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #3 : 31-05-2010 21:46 » 

Гарантирую, что через месяц ты уже не сможеш прочитать этот код. Я наверху добавил на счет деструктора у формы. Есть он у тебя или нет его? И приведи полный текст ошибки.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
nitrikc
Интересующийся

ru
Offline Offline
Пол: Мужской
nitrikc


« Ответ #4 : 31-05-2010 21:53 » 

да оперделен. ошибка выскакивает когда использую эту часть А черт его знает...
Записан

Не спорь с дураком, он сначала опустит до своего уровня, а потом задавит опытом.
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #5 : 31-05-2010 21:54 » 

Ошибка компиляции, Ошибка линковки или ошибка исполнения? Как можно точную формулировку ошибки.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
nitrikc
Интересующийся

ru
Offline Offline
Пол: Мужской
nitrikc


« Ответ #6 : 31-05-2010 21:58 » 

project project1.exe raised exception class ElnvalidPointer with message 'invalid pointer operator'. Process stopped.use step or run to continue
Записан

Не спорь с дураком, он сначала опустит до своего уровня, а потом задавит опытом.
nitrikc
Интересующийся

ru
Offline Offline
Пол: Мужской
nitrikc


« Ответ #7 : 31-05-2010 22:00 » 

потом как в теме выскакивает. прогу запускаю. есть несколько кнопок. все работает. но вот этот кусок запускаю и при нажатии на выход выводит ошибку. насколько я понял он к чему то обратиться не может
Записан

Не спорь с дураком, он сначала опустит до своего уровня, а потом задавит опытом.
nitrikc
Интересующийся

ru
Offline Offline
Пол: Мужской
nitrikc


« Ответ #8 : 31-05-2010 22:01 » 

компилирует и этот код выполняет все супер. но при нажатии выход ошибка!
Записан

Не спорь с дураком, он сначала опустит до своего уровня, а потом задавит опытом.
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #9 : 31-05-2010 22:06 » 

Ну ругается, что ты неправильно используеш указатели. Что в принципе и понятно.
Код:
a = new char*[h]; /*Выделили память под x-указателей, которые будут //указывать на строки*/
for(int i=0;i<=h;i++)
{a[i] = new char[h];}
Посчитай на пальцах, сколько ты элементов выделил под массив, и сколько пытаешся использовать. Выделяеш вроде как всего 2 элемента, а используеш 3. Дальше по программе такая же ошибка.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
nitrikc
Интересующийся

ru
Offline Offline
Пол: Мужской
nitrikc


« Ответ #10 : 31-05-2010 22:08 » 

ага!!! я понял!!! ща поправлю спасибо))
Записан

Не спорь с дураком, он сначала опустит до своего уровня, а потом задавит опытом.
nitrikc
Интересующийся

ru
Offline Offline
Пол: Мужской
nitrikc


« Ответ #11 : 31-05-2010 22:09 » 

у меня еще примерно такой же кусочек и там такая же ошибка. спс огромное))
Записан

Не спорь с дураком, он сначала опустит до своего уровня, а потом задавит опытом.
nitrikc
Интересующийся

ru
Offline Offline
Пол: Мужской
nitrikc


« Ответ #12 : 31-05-2010 22:20 » 

все работает!!! курсовик писал! все написал! тока вот ошибки 2 выдавал. реализацию перестановочного шифра в усложненном варианте.
спасибо огромное!!
Записан

Не спорь с дураком, он сначала опустит до своего уровня, а потом задавит опытом.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines