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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Zakat
6 / 6 / 0
Регистрация: 24.12.2012
Сообщений: 143
#1

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

10.01.2014, 09:39. Просмотров 367. Ответов 5
Метки нет (Все метки)

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++ Невозможно преобразовать "const char" в "char"
C++ Преобразовать строку, заменяя каждое слово "this" словом "that".
C++ Преобразовать параметр из "WCHAR [260]" в "const char *"
невозможно преобразовать параметр 1 из "int" в "int *&" C++
Невозможно преобразовать "overloaded-function" в "LPDSENUMCALLBACKW" C++
C++ Error C2440 невозможно преобразовать "void *" в "char *
C++ Ошибка преобразования "Невозможно преобразовать 'const WidgetVector' в 'WidgetVector'"
Ошибка "Невозможно преобразовать аргумент 1 из "double" в "double *" C++
Error C2440: =: невозможно преобразовать "void *" в "Node *" C++
C++ Невозможно преобразовать параметр 2 из "char" в "const char *"
C++ C2440 "Невозможно преобразовать double в double"
C++ Невозможно преобразовать "unsigned int" в "output::book_origin"

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5410 / 4806 / 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
1354 / 984 / 215
Регистрация: 31.05.2009
Сообщений: 4,108
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
640 / 561 / 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 *"
Ответ Создать тему
Опции темы

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