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

Невозможно преобразовать "void *" в "st *" - C++

Восстановить пароль Регистрация
 
Zakat
6 / 6 / 0
Регистрация: 24.12.2012
Сообщений: 143
10.01.2014, 09:39     Невозможно преобразовать "void *" в "st *" #1
C++
1
2
struct st *PTR; 
PTR = malloc(sizeof(struct st));
Для преобразования "void*" к указателю на тип, не являющемуся "void", требуется явное приведение
Такая вот ошибочка выходит, может кто помочь?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2014, 09:39     Невозможно преобразовать "void *" в "st *"
Посмотрите здесь:

Невозможно преобразовать прараметр C++
C++ невозможно преобразовать параметр
Невозможно преобразовать C++
C++ Error C2440 невозможно преобразовать "void *" в "char *
C++ Невозможно преобразовать параметры
Error C2440: =: невозможно преобразовать "void *" в "Node *" C++
Преобразовать void в int C++
Error C2440: инициализация: невозможно преобразовать "void *" в "listnode *". подскажите, что можно сделать? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.01.2014, 09:41     Невозможно преобразовать "void *" в "st *" #2
C++
1
2
struct st *PTR; 
PTR = (struct st*)malloc(sizeof(struct st));
Black Fregat
 Аватар для Black Fregat
1353 / 983 / 215
Регистрация: 31.05.2009
Сообщений: 4,093
10.01.2014, 09:44     Невозможно преобразовать "void *" в "st *" #3
Как ни странно звучит, нужно таки поставить явное приведение типа:
C
1
2
struct st *PTR; 
PTR = (struct st*) malloc(sizeof(struct st));
Это если на С.
А на плюсах желательно даже структуры размещать как объекты, через new
C++
1
2
struct st *PTR; 
PTR = new st;
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
10.01.2014, 09:45     Невозможно преобразовать "void *" в "st *" #4
C++
1
2
struct st *PTR; 
PTR = static_cast<st*>(malloc(sizeof(struct st)));
так добрее
alsav22
10.01.2014, 09:51
  #5

Не по теме:

Цитата Сообщение от Black Fregat Посмотреть сообщение
Это если на С.
Это если на С++, на С - явно приводить необязательно.

Добавлено через 1 минуту
Цитата Сообщение от aLarman Посмотреть сообщение
так добрее
Кучнее (С и С++ в кучу)

aLarman
10.01.2014, 10:08     Невозможно преобразовать "void *" в "st *"
  #6

Не по теме:

Цитата Сообщение от alsav22 Посмотреть сообщение
Кучнее (С и С++ в кучу)
все правильно, думаю это будет лучше
Цитата Сообщение от Black Fregat Посмотреть сообщение
C++
1
PTR = new st;

Yandex
Объявления
10.01.2014, 10:08     Невозможно преобразовать "void *" в "st *"
Ответ Создать тему
Опции темы

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