Goul
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Zillion Я не очень понял необходимость использования сишных конструкций, раз уж мы ведём речь про C++. Возможно, где-то я ошибаюсь, под отладчиком не запускал, C не использую. Но вот несколько мыслей. Цитата: user_text = (char**) malloc( sizeof (char*) ); | Такое приведение типов идеологически неверно. К счастью, размеры char** и char* совпадают, поэтому код работает. Но лучше использовать malloc(sizeof(char**)). Цитата: *(*(user_text + i) + (j + 1)) != 0xe | Здесь, по меньшей мере, при первом обходе Вы обращаетесь к неинициализированной ячейки памяти. *(user_text + i) в первый проход равно *user_text. Это значение не инициализировано. Соответственно, *(user_text + i) + (j + 1) тоже не инициализировано, это значение указывает в никуда. Да, и даже если бы *(user_text + i) давал корректное значение типа char*, j + 1 всё равно портило бы ситуацию. Цитата: (char**) realloc( user_text, i*sizeof (char*)); | realloc меняет значение переменной-указателя (в данном случае user_text). Соответственно, вся сделанная до него работа отправляется в мусор. | Всего записей: 704 | Зарегистр. 28-05-2004 | Отправлено: 21:05 22-01-2006 | Исправлено: Goul, 21:09 22-01-2006 |
|