Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
SoproMaster
50 / 50 / 1
Регистрация: 12.10.2009
Сообщений: 152
#1

Явное приведение "void*" - C++

24.11.2010, 19:31. Просмотров 1412. Ответов 3
Метки нет (Все метки)

Всем привет
В коде при компиляции появляется ошибка
error C2440: =: невозможно преобразовать "void *" в "Player_texture *"
1> Для преобразования "void*" к указателю на тип, не являющемуся "void", требуется явное приведение


Вот кусок кода, которого, как я думаю будет достаточно для понятия проблемы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
struct _player_texture
{
  int valid; // was the loading attempt successful ? 
#ifdef  USE_SDL
  SDL_Surface *bitmap;
#else
  void *bitmap;
#endif
  GLuint tex_id; //OpenGL texture ID
  float scale_x, scale_y; // scale the texcoords, as OpenGL thinks in TEX_XSIZE and TEX_YSIZE
};
 
typedef struct _player_texture Player_texture; 
Player_texture  *pt; 
int tex_mode; // Texturing active ? 
 
pt = malloc(sizeof( *pt));   // В этой строке ошибка и есть.
Сам пробовал с проблемой разобраться, но дело с мёртвой точки не движется. Прошу помочь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2010, 19:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Явное приведение "void*" (C++):

не получается передать массив из "void Vvod" в "void CalculatingEstimates" - C++
#include <iostream> #include <conio.h> using namespace std; void CalculatingEstimates(int Pp,Stydent mas); void Vvod(); struct...

Error C2084: функция "void mehanizm:print(void)" уже имеет текст реализации - C++
Добрый день, я столкнулся с проблемой вывода элемента на экран, выбивает: "error C2084: функция "void mehanizm::print(void)" уже имеет...

Error C2440: инициализация: невозможно преобразовать "void *" в "listnode *". подскажите, что можно сделать? - C++
#include <iostream> struct listnode { char *data; int value; struct listnode *next; }; struct listnode...

Error C2440: =: невозможно преобразовать "void *" в "Node *" - C++
Почему ошибка? error C2440: =: невозможно преобразовать "void *" в "Node *" #include <stdio.h> #include <ctype.h> #include...

LNK2019: ссылка на неразрешенный внешний символ "void __cdecl run(void)" (?run@@YAXXZ) в функции _wmain - C++
#include "stdafx.h" #include "iostream" #include "cmath" using namespace std; class A { private : double *x; double...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно". Я так...

3
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
24.11.2010, 19:39 #2
C++
1
pt = (Player_texture*)malloc(sizeof( *pt));
1
accept
4825 / 3246 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
24.11.2010, 23:40 #3
в C++ обязательно приводить
0
SoproMaster
50 / 50 / 1
Регистрация: 12.10.2009
Сообщений: 152
25.11.2010, 09:41  [ТС] #4
Cпасибо, помогло!
0
25.11.2010, 09:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2010, 09:41
Привет! Вот еще темы с ответами:

Значение типа "void" нельзя использовать для инициализации сущности типа "int" - C++
Не понимаю, почему компилятор считает, что s.pop() это значение типа "void".. он же вернет этот удаляемый элемент? Как исправить? void...

недопустимый "My_tip" с последующим "void" - C++
Добрый день, при написании кода столкнулся с проблемой в определении шаблона функции, выбивает "error C2628: недопустимый "My_tip" с...

Error C2440 невозможно преобразовать "void *" в "char * - C++
Уважаемые форумчане. Не могу понять почему ему не нравятся указатели. Запускал прогу на разных компиляторах одна и та же ошибка. Error...

Невозможно преобразовать "void *" в "st *" - C++
struct st *PTR; PTR = malloc(sizeof(struct st)); Для преобразования "void*" к указателю на тип, не являющемуся "void", требуется...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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