SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: yellowpaper en Domingo 10 de Junio de 2012, 15:05
-
Hola , estoy haciendo un ejercicio de threads en Linux donde tengo que utilizar para su creación pthread_create . Como sabrán esa función tiene un parámetro que es el puntero? a una función de lo que va a hacer el thread. Esa función recibe un solo parámetro que es un puntero a void.
Necesito enviar 2 punteros de dos objetos distintos, por lo que hice esto
void *vector[2];
vector[0]=(void *) &obteto0;
vector[1]=(void *) &objeto1;
y en la función del thread hago
void *funcion(void *inf)
{
objeto1 *ed = (objeto1 *) inf[1];
Pero no me deja hacerlo
Me da errores como :
aviso: se usó un puntero de tipo ‘void *’ en la aritmética [-Wpointer-arith]|
o como
ISO C++ prohíbe incrementar un puntero de tipo ‘void*’ [-fpermissive] (si quiero hacer inf++)
Alguien me puede explicar por que poasa esto y coomo solucionarlo...incluso si quiero castear a (void * [] ) tampoco me deja hacerlo..
Chau y gracias!
-
Bueno , lo soluciono creando una clase auxiliar que contiene dos punteros (uno de objeto 1 y otro de objeto2 ) y eso es lo que termino pasando por parametro y no ese array de punteros void que por lo que veo no es posible o no lo se hacer.
:gracias: