nitrikc
Интересующийся
Offline
Пол:
nitrikc
|
|
« : 31-05-2010 21:29 » |
|
люди у меня такая ошибка в коде. я не могу понять что мне обнулить надо... не могли бы посмотреть и помочь. 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
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #1 : 31-05-2010 21:43 » |
|
nitrikc, Ты хоть сам разбираешся в своем коде? Очень плохое форматирование кода, как правило ведет к еше большим ошибкам при написании. Кстати у тебя деструктор у формы определен?
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
nitrikc
Интересующийся
Offline
Пол:
nitrikc
|
|
« Ответ #2 : 31-05-2010 21:44 » |
|
nitrikc, Ты хоть сам разбираешся в своем коде? Очень плохое форматирование кода, как правило ведет к еше большим ошибкам при написании.
начал писать только. не все сразу приходит)) вот и прошу помощи. код писал я. разбираюсь в нем.
|
|
|
Записан
|
Не спорь с дураком, он сначала опустит до своего уровня, а потом задавит опытом.
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #3 : 31-05-2010 21:46 » |
|
Гарантирую, что через месяц ты уже не сможеш прочитать этот код. Я наверху добавил на счет деструктора у формы. Есть он у тебя или нет его? И приведи полный текст ошибки.
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
nitrikc
Интересующийся
Offline
Пол:
nitrikc
|
|
« Ответ #4 : 31-05-2010 21:53 » |
|
да оперделен. ошибка выскакивает когда использую эту часть
|
|
|
Записан
|
Не спорь с дураком, он сначала опустит до своего уровня, а потом задавит опытом.
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #5 : 31-05-2010 21:54 » |
|
Ошибка компиляции, Ошибка линковки или ошибка исполнения? Как можно точную формулировку ошибки.
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
nitrikc
Интересующийся
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
Интересующийся
Offline
Пол:
nitrikc
|
|
« Ответ #7 : 31-05-2010 22:00 » |
|
потом как в теме выскакивает. прогу запускаю. есть несколько кнопок. все работает. но вот этот кусок запускаю и при нажатии на выход выводит ошибку. насколько я понял он к чему то обратиться не может
|
|
|
Записан
|
Не спорь с дураком, он сначала опустит до своего уровня, а потом задавит опытом.
|
|
|
nitrikc
Интересующийся
Offline
Пол:
nitrikc
|
|
« Ответ #8 : 31-05-2010 22:01 » |
|
компилирует и этот код выполняет все супер. но при нажатии выход ошибка!
|
|
|
Записан
|
Не спорь с дураком, он сначала опустит до своего уровня, а потом задавит опытом.
|
|
|
Finch
Спокойный
Администратор
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
Интересующийся
Offline
Пол:
nitrikc
|
|
« Ответ #10 : 31-05-2010 22:08 » |
|
ага!!! я понял!!! ща поправлю спасибо))
|
|
|
Записан
|
Не спорь с дураком, он сначала опустит до своего уровня, а потом задавит опытом.
|
|
|
nitrikc
Интересующийся
Offline
Пол:
nitrikc
|
|
« Ответ #11 : 31-05-2010 22:09 » |
|
у меня еще примерно такой же кусочек и там такая же ошибка. спс огромное))
|
|
|
Записан
|
Не спорь с дураком, он сначала опустит до своего уровня, а потом задавит опытом.
|
|
|
nitrikc
Интересующийся
Offline
Пол:
nitrikc
|
|
« Ответ #12 : 31-05-2010 22:20 » |
|
все работает!!! курсовик писал! все написал! тока вот ошибки 2 выдавал. реализацию перестановочного шифра в усложненном варианте. спасибо огромное!!
|
|
|
Записан
|
Не спорь с дураком, он сначала опустит до своего уровня, а потом задавит опытом.
|
|
|
|