elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  funcion de SDL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: funcion de SDL  (Leído 1,727 veces)
d00ze13

Desconectado Desconectado

Mensajes: 78


Ver Perfil
funcion de SDL
« en: 3 Junio 2011, 18:37 pm »

Hola buenas estoy intentando hacer una funcion en SDL para pasarle los puntos donde quiero que se dibuje una imagen pero no consigo que me funcione. a ver si me pudierais hechar una mano.

main.cpp
Código
  1. #include "func.h"
  2. SDL_Rect *dest=NULL;
  3. dest=tam(dest,100,100,30,30);
  4.  

func.h
Código
  1. struct SDL_Rect* tam(struct SDL_Rect *fig,int x,int y,int w,int h);
  2.  

func.cpp
Código
  1. #include "func.h"
  2. struct SDL_Rect* tam(struct SDL_Rect *fig,int a,int b,int c,int d){
  3.    fig->x=a;
  4.    fig->y=b;
  5.    fig->w=c;
  6.    fig->h=d;
  7.  
  8.    return fig;
  9. }
  10.  


En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: funcion de SDL
« Respuesta #1 en: 3 Junio 2011, 19:51 pm »

Dos cosas:

NO puedes tener código ejecutable FUERA de una función tal como lo expresas en tu main.cpp

Código
  1. dest=tam(dest,100,100,30,30);
Eso tiene que estar en una función si o si, bien sea main o la que sea, pero NUNCA suelto.

Por otro lado, espero que no lo estés haciendo tal cual lo pones, porque sino obviamente, dest no apunta a nada, y la función no crea ningún punto para que dest lo reciba.

Deberías mirarte la teoría de punteros, y antes de empezar a usar la SDL entender qué haces.

Opciones?

Código
  1. struct SDL_Rect* tam(struct SDL_Rect *fig,int a,int b,int c,int d){
  2. fig=(fig*) malloc(sizeof(struct SDL_Rect));
  3. if(fig!=NULL){
  4. fig->x=a;
  5. fig->y=b;
  6. fig->w=c;
  7. fig->h=d;
  8. }
  9. else {
  10. // estás jodido
  11. }
  12.    return fig; // tanto da si apunta a algo como si apunta a null, tu función devuelve un puntero
  13. }

o bien

Código
  1. SDL_Rect *dest=NULL;
  2. dest=(struct SDL:Rect*)malloc(sizeof(struct SDL_Rect));
  3. if(dest!=NULL){
  4. dest=tam(dest,100,100,30,30); // el dest= sobraría. Al fin y al cabo qué sentido tiene recibir el
  5. //mismo puntero que le pasas?
  6. }
  7. else {
  8. // estás jodido
  9. }
  10.  


En línea

d00ze13

Desconectado Desconectado

Mensajes: 78


Ver Perfil
Re: funcion de SDL
« Respuesta #2 en: 3 Junio 2011, 20:22 pm »

puff mil gracias tio!
le hechare un vistazo a los punteros que hace mil que no programo y ya se me olvido un poco.
; )
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
manejo de argumentos en funcion dentro de funcion ???
PHP
SpiderNet 2 3,450 Último mensaje 30 Septiembre 2008, 03:01 am
por SpiderNet
Llamar a una funcion dentro de una funcion
Java
Kerber0 3 37,646 Último mensaje 22 Noviembre 2008, 04:40 am
por joseprox
Duda con funcion dentro de funcion en un echo
PHP
N4X 6 5,895 Último mensaje 21 Enero 2010, 18:12 pm
por N4X
* [Source+Funcion+vb6] AceptarConeccion (Sencilla funcion)
Programación Visual Basic
BlackZeroX 0 2,718 Último mensaje 19 Abril 2010, 00:54 am
por BlackZeroX
FUncion main y Funcion Winmain
Programación C/C++
mapers 1 2,593 Último mensaje 5 Febrero 2011, 15:44 pm
por oPen syLar
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines