Форум программистов, компьютерный форум CyberForum.ru

создал метод класса в основе которо лежит itoa - C++

Восстановить пароль Регистрация
 
Miwa123
37 / 37 / 1
Регистрация: 16.04.2013
Сообщений: 317
Записей в блоге: 1
10.10.2013, 17:51     создал метод класса в основе которо лежит itoa #1
создал метод класса в основе которо лежит itoa. прототип метода такой
C
1
char*myitoa();
внутри метода выделаю динам. память. затем на следующем вызове этого же метода нужно очистить память по указателю от предыдущего вызова. и в эти же ячейки записать новые данные. можно сделать параметр - указатель, который пришел с предыдущего вызова. возможно есть пути покрасивее?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2013, 17:51     создал метод класса в основе которо лежит itoa
Посмотрите здесь:

C++ Как описать метод класса? Как двумя способами описать инлайнируемый метод класса? Что такое this?
C++ Организовать на основе существующего класса произвольный класс
класс наследник на основе базового класса C++
На основе класса Vector разработать класс Matrix C++
Верно ли, что в основе фабрики лежит наследование классов? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4842 / 2981 / 367
Регистрация: 10.11.2010
Сообщений: 11,013
Записей в блоге: 10
Завершенные тесты: 1
10.10.2013, 18:06     создал метод класса в основе которо лежит itoa #2
Если правильно понял..
C++
1
2
3
4
5
6
7
char *myitoa() {
    static char * ptr = 0;
    if ( ptr ) delete [] ptr;
    ptr = new char [256];
    ...
    return ptr;
}
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
10.10.2013, 18:06     создал метод класса в основе которо лежит itoa #3
Если я правильно вас понял, то "оператор размещения new" вам поможет. Он позволяет разместить новый объект в уже выделенной памяти.
Например
C++
1
2
3
4
5
6
7
8
9
10
11
#include <new>
class A;
int main ( void ) {
    char* buf = new char[sizeof A];
    A* ptr = new (buf) A;
    // поизменяем ptr, сохраним если нужно, потому что сейчас он будет затерт
    // . . .
    А* ptr2 = new (buf) A;
    // . . .
   delete [] buf;
}
Miwa123
37 / 37 / 1
Регистрация: 16.04.2013
Сообщений: 317
Записей в блоге: 1
10.10.2013, 18:26  [ТС]     создал метод класса в основе которо лежит itoa #4
Цитата Сообщение от castaway Посмотреть сообщение
Если правильно понял..
C++
1
2
3
4
5
6
7
char *myitoa() {
    static char * ptr = 0;
    if ( ptr ) delete [] ptr;
    ptr = new char [256];
    ...
    return ptr;
}
спасибо. в учебнике эту главу пролистал. static - то что нужно!

Добавлено через 13 минут
Цитата Сообщение от castaway Посмотреть сообщение
Если правильно понял..
C++
1
2
3
4
5
6
7
char *myitoa() {
    static char * ptr = 0;
    if ( ptr ) delete [] ptr;
    ptr = new char [256];
    ...
    return ptr;
}
castaway
Эксперт С++
4842 / 2981 / 367
Регистрация: 10.11.2010
Сообщений: 11,013
Записей в блоге: 10
Завершенные тесты: 1
10.10.2013, 18:28     создал метод класса в основе которо лежит itoa #5
Цитата Сообщение от Miwa123 Посмотреть сообщение
- утекла память.
если не прав. объясните
Этот указатель только один раз будет инициализирован нулём, в самом начале. После он нулём инициализироваться не будет, такова особенность модификатора static.
Yandex
Объявления
10.10.2013, 18:28     создал метод класса в основе которо лежит itoa
Ответ Создать тему
Опции темы

Текущее время: 00:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru