| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > неправильное выделение памяти под |
| Автор: ICEMAN 13.4.2006, 18:32 |
| Подскажаите в чём причина Вобщем у меня описан вот такой класс class spisokpred {public: char nazv[50]; int prepodav[10]; int numclas[10][1]; }; и есть spisokpred Listpred[40]; при char *a=""; a=Edit1->Text.c_str(); for(int i=0;i<b;i++) { Listpred[colpred].nazv[i]=a[i]; } в предыдущий Listpred[colpred-1].numclas[10][0] загоняется бешенное число а текущий Listpred[colpred].nazv становится быть равным "\x04" или "\x01" где 01 или 04 значение то которое было в Listpred[colpred-1].numclas[10][0] |
| Автор: Ctrl_Alt_Del 13.4.2006, 18:54 | ||
ICEMAN, не извращайся.
|
| Автор: _hunter 13.4.2006, 18:56 |
| ну так разбивай тектовый случай на простейшие. в данном случае делай так: spisokpred Listpred; и char *a=""; a=Edit1->Text.c_str(); for(int i=0;i<b;i++) { Listpred.nazv[i]=a[i]; } и пройдись по коду отладчиком. + зачем извращение с Edit1->Text.c_str();? не проще ли так: for(int i=0;i<b;i++) { Listpred.nazv[i]=Edit1->Text[i]; } делать? да и не до b считать нужно а до Edit1->Text.Length() |
| Автор: ICEMAN 13.4.2006, 19:05 |
| ты всё праильно говоришь у меня сначало так и было просто я запрогался и начал всяким извратом отлажывать когда не видел ошибку просто я не заметил что у меня numclas c 0-10 но 10 эл не существует а я к нему обращался |
| Автор: _hunter 14.4.2006, 11:22 |
| при поиске ошибок код обычно упрощают а не усложняют... |