powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / вопрос по malloc()
23 сообщений из 23, страница 1 из 1
вопрос по malloc()
    #34134590
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
myClass	*ptr;
ptr = (myClass *)malloc(sizeof(myClass));

как передать в конструктор myClass параметры, аналогично тому как это делается в new:

Код: plaintext
1.
ptr = new CParser_0(param1, param2);
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34134769
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tubrik
Код: plaintext
1.
2.
myClass	*ptr;
ptr = (myClass *)malloc(sizeof(myClass));

как передать в конструктор myClass параметры, аналогично тому как это делается в new:

Код: plaintext
1.
ptr = new CParser_0(param1, param2);


malloc не будет вызать конструктор , он просто выделит память.
Поэтому параметры ему никчему.

Вопрос нужно ставить как то по другому.
Какова цель сей затеи?
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34134875
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может быть автор хотел разместить объект по извеcтному адресу ну тогда наверное так?
void* buf = malloc(sizeof(MyClass));
а потом
MyClass* ptr= new (buf) MyClass(...);
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34134901
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
void *rptr = malloc( sizeof(myClass) );
myClass	*ptr = new (rptr) myClass( param1, param2 );

....

ptr->~myClass();
free( rptr );
[/quot]
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34134970
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Цель - выделить память под объект, который должен инициализироваться через конструктор с параметрами, не используя new.
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34134976
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TubrikЦель - выделить память под объект, который должен инициализироваться через конструктор с параметрами, не используя new.Каким компиллятором вы пользуетесь?
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34134981
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton TubrikЦель - выделить память под объект, который должен инициализироваться через конструктор с параметрами, не используя new.Каким компиллятором вы пользуетесь?
Microsoft Visual C++ .NET
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34134988
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то выходит, что malloc() вообще не вызывает никакой конструктор.
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34134993
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я правильно понял, то через malloc можно создавать динамические объекты, но не будут задействованы конструкторы и деструкторы, т.е. нужно это делать через любые другие методы класса?
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34135072
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уфф... Иногда на этот форум заглядывают люди, которые программируют микроконтроллеры. Для них - актуально использовать чистый "С". Но в вашем случае я не вижу смысла делать какие либо исследования. Вы пишете на MS C++ ? Отлично! Используете ООП? Великолепно! Так используйте правильные методологии. Не стройте велосипедов. Запомните: malloc() просто выделяет память. Никаких конструкторов он не вызывает и никакого отношения к ООП он не имеет.
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34135379
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TubrikЦель - выделить память под объект, который должен инициализироваться через конструктор с параметрами, не используя new.

Каков в этом смысл?
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34135427
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TubrikЦель - выделить память под объект, который должен инициализироваться через конструктор с параметрами, не используя new.
Код: plaintext
1.
2.
A *a=(A*)malloc(sizeof(A));
(*a)=A(params);
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34135437
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TubrikЧто-то выходит, что malloc() вообще не вызывает никакой конструктор.

malloc - функция из RTL языка C, о конструкторах она не имеет никакого понятия. Даже не знает, что это такое. Поэтому вызывать их она ну никак не может.
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34135755
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я чего-то не пойму, при вызове new(buf) A(param) память не выделяется, объект размещается( вызывается конструктор) по указанному адресу. чего еще надо? чтобы слова new не было? ну так никак не получится
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34135781
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedя чего-то не пойму, при вызове new(buf) A(param) память не выделяется, объект размещается( вызывается конструктор) по указанному адресу. чего еще надо? чтобы слова new не было? ну так никак не получится

У меня получилось. :)
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34136175
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkhУ меня получилось. :)
Ну-ну.
Код: plaintext
1.
2.
3.
4.
5.
6.
void *z;
z=malloc(sizeof(string));
memset(z, 255 ,sizeof(string)); /// просто в памати помусорили...
free(z); 
string *a=(string *)malloc(sizeof(string));
(*a)=string("test"); /// бабах - все упало...
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34136324
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
#define ya_ne_ispolsuyu_new new
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34136489
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barlone AkhУ меня получилось. :)
Ну-ну.
Код: plaintext
1.
2.
3.
4.
5.
6.
void *z;
z=malloc(sizeof(string));
memset(z, 255 ,sizeof(string)); /// просто в памати помусорили...
free(z); 
string *a=(string *)malloc(sizeof(string));
(*a)=string("test"); /// бабах - все упало...


Да? А в чем дело?
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34136616
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну дело в вызове перегруженного оператора присваивания для неинициализорованного объекта.
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34136659
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarloneНу дело в вызове перегруженного оператора присваивания для неинициализорованного объекта.

Тогда да. Получается дырка. Инициализация и присваевание вещи разные.
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34136934
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мы тут классно оттянулись, а вот автор куда-то смылся, Хоть бы пояснил поподробнее чегоже все-таки хотел добится
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34136963
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blinded , ваш ответ конечно правильный, только автор вопрса этого не понял :)
...
Рейтинг: 0 / 0
вопрос по malloc()
    #34137982
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никуда я не смывался, все понял) и всем признателен за ответы. Честное слово)
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / вопрос по malloc()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]