![]() |
|
![]() ![]() ![]() |
|
___Yuri |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 2.3.2005 Где: МО Репутация: нет Всего: нет |
Программа записывает нечто по нулевому адресу(NULL pointer assignment). Прохожу пошагово - все нормально: по нулевму адресам ничего не записывается и счетчик неизменен((char*)4 and *(char*)0,4m). Вероятно, проблема связана со стеком - но где не понимаю.
Какие способы решения данной проблемы известны( Возможно какой -либо еще метод отладки?) ? ![]() |
|||
|
||||
UhaMurad |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 22.9.2004 Где: Махачкала Репутация: нет Всего: нет |
___Yuri, что значит ((char*)4 and *(char*)0,4m)? Объясни, пожалуйста
|
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
бррр... ну и объяснение... какой счетчик ( и при чем он тут )?
+ включи CodeGuard ( он должен место показать ) но лучше дай нормальное объяснение -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
___Yuri |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 2.3.2005 Где: МО Репутация: нет Всего: нет |
UhaMurad В Borland(в крайнем случае старые версии),
насколько мне извесно, это нулевой адрес и счетчик соответственно. Обычно если NULL pointer(проверено на собственном опыте) то в месте "вылета" изменяется один из этих параметров. |
|||
|
||||
___Yuri |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 2.3.2005 Где: МО Репутация: нет Всего: нет |
Думаю, что проще привести кусок кода. Место ошибки(первой в крайнем случае) я нашел, но почему именно здесь происходят проблемы не понимаю. Строчка указана внутри кода. Суть кода:читаю строку введенную юзером и сравниваю с ключевыми словами.
/*..........*/ char **arr,**buf; char *buf2; /*..........*/ *arr=(char *)malloc(ML); if(*arr==NULL) { printf("Key word memory allocation: %s",strerror(errno)); exit(-1); } *buf=(char *)malloc(ML); if(*arr==NULL) { printf("Key word memory allocation: %s",strerror(errno)); exit(-1); } arr[0]="table"; arr[1]="select"; arr[2]="insert"; arr[3]="from"; arr[4]="where"; arr[5]="delete"; arr[6]="create"; arr[7]="into"; buf2=(char *)malloc(ML); if(buf2==NULL) { printf("Key word memory allocation: %s",strerror(errno)); exit(-1); }; printf("\n Enter the string:"); gets(buf2); buf2=strtok(buf2," "); buf[0]=buf2; printf("buf[0] : %s\n",buf[0]); // ![]() ![]() /*В предыдущей строке происходит "вылет": Null pointer или "переписывание": arr[4] изменяется - почему не понимаю*/ i=1; while(strcmp(buf2,".")!=0) { buf2=strtok('\0'," "); buf[i]=buf2; printf("buf_arr[%d] : %s\n",i,buf[i]); i++; } i--; k=0; for(k=0;k<i;k++) for(j=0;j<NX;j++) { if(strcmp(buf[k],arr[j])==0) mainkey*=p[j]; } /*............*/ |
|||
|
||||
Vyacheslav |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Читаем это (обращая особое внимание на выделенную часть)
И ... смотрим на это
Вопросы еще есть? -------------------- С уважением, Вячеслав Ермолаев |
||||
|
|||||
___Yuri |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 2.3.2005 Где: МО Репутация: нет Всего: нет |
Vyacheslav, спасибо большое. Вопросов пока больше нет. Возможно Вы также подскажите откуда цитата?(Проблемы с памятью у меня любимые).
Спасибо. ![]() |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
справка билдера
![]() -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |