| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > как освободить строку |
| Автор: Ekate 14.8.2008, 10:08 | ||||
| Добрый день, вопрос следующий, есть функция sub, которая вычитает из 1 аргумента 2ой и записывает рез-т в строку, вопрос в том, как корректно очистить строку, чтобы применить функцию в цикле? Код
Результат
Спасибо |
| Автор: Ockonal 14.8.2008, 10:13 |
| А выделять память под строку? |
| Автор: Ekate 14.8.2008, 10:45 | ||
Т.е. так ?
|
| Автор: Ockonal 14.8.2008, 10:53 |
| Если уж так очищать: memset( &string, 0, sizeof( string ) ); А вообще, через new/delete. |
| Автор: Ekate 14.8.2008, 11:06 | ||
Нет, так не пойдет: #include <string.h> void *memset(void *s, int c, size_t n); DESCRIPTION The memset() function fills the first n bytes of the memory area pointed to by s with the constant byte c. Ну все равно спасибо за наводку, просто я, наверное, не поняла, вроде изначально при char buf3[200]=""; уже выделяется память, и странно, что когда strcpy(buf2,""); не затирается вся строка, но при выводе пустая, я вот этого не поняла я не указала, что в С |
| Автор: bsa 14.8.2008, 11:33 |
| Ekate, подозреваю, что у тебя есть еще ошибки. Так как в представленном тобой коде видится только одна потенциальная ошибка. Я не знаю, как реализована функция sub, но, думаю, что она либо изменяет строку в треьем параметре, либо выделяет память под новую, либо держит в себе локальный буфер. В любом из этих трех случаев у тебя ошибки: 1. функция printf выведет один и тот же результат 2. не освобождается выделенная память 3. нельзя возвращать указатель на локальные нестатические переменные. Я что-то забыл? |
| Автор: mes 14.8.2008, 13:45 |
при формировании строки (в sub) заканчивай ее \0, тогда хвост не будет отображаться |
| Автор: Ekate 26.8.2008, 09:03 | ||||
| Доброе утро, не приступала к решению проблемы дооолгое время, все еще актуальна, не могу понять, наверняка ошибка в процедуре вычитания, но не вижу, не подскажите
процедура деления
Спасибо |
| Автор: Ekate 26.8.2008, 09:22 | ||
поправила вычитание, работает прекрасно, а вот с делением все не получается
|