IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

incomplete type sur pointeur de pthread ?


Sujet :

Linux

  1. #1
    la_tupac
    Invité(e)
    Par défaut incomplete type sur pointeur de pthread ?
    Salut a tous!
    Je bloque un peu sur un truc tout bête.
    c'est un serveur multithread et le soucis se situe au niveau du thread envoi.
    Il est initialisé avec un pointeur vers une struct qui contient un/une queue (pas important je pense).
    Le cast doit mal fonctionner ou il ne peut faire passer un pointeur simple...
    En tout cas les lignes qui référencent ce pointeur retournent une erreur à la compil : invalid use of incomplete type 'struct tpc_chat_user'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    void *Cli_snd(void *ptr){
    	struct tpc_chat_user *myuser;
    	myuser =  (struct tpc_chat_user*)ptr;
    	class tpc_socket_tcpsrv srv;
    	string buff;
    	srv.init(1001);
    	srv.awaiting();
    	while(srv.sock)
    	{
    		if(!myuser->buff_envoi.empty()) // myuser : incomplete type
    		{
    			buff = myuser->buff_envoi.front();// myuser : incomplete type
    			srv.snd(&buff);
    			myuser->buff_envoi.pop();// myuser : incomplete type
    		}
    	}
    }
    une explication s'il vous plait ??

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Points : 376
    Points
    376
    Par défaut
    personnellment je ferais pas comme ça, j'ai rien pour tester la syntaxe mais ça dois ressembler a ça je crois.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    typedef struct tpc_chat_user{ .......
    } T_tpc_chat_user;
     
    void *Cli_snd(T_tpc_chat_user *ptr){
    	T_tpc_chat_user *myuser;
    	myuser = ptr;
    	class tpc_socket_tcpsrv srv;
    	string buff;
    	srv.init(1001);
    	srv.awaiting();
    	while(srv.sock)
    	{
    		if(!myuser->buff_envoi.empty()) // myuser : incomplete type
    		{
    			buff = myuser->buff_envoi.front();// myuser : incomplete type
    			srv.snd(&buff);
    			myuser->buff_envoi.pop();// myuser : incomplete type
    		}
    	}
    }

  3. #3
    la_tupac
    Invité(e)
    Par défaut
    Merci Ashin ! Je ne savais pas qu'on pouvait déclarer un thread avec un pointeur non-void. je test ça tout à leur.
    merci encore.

  4. #4
    la_tupac
    Invité(e)
    Par défaut
    Bon j'ai trouvé et je ne suis pas fière
    En fait la struct déclaré était tpc_chat_usr sans 'e' à user. <-- boulet
    sinon ta methode ne passe pas dans mon cas, l'erreur est: invalid conversion from void*(*)(void*) to void*(*)(tpc_chat_usr*)
    Mais ça je le savais, enfin bon voilà je retourne me cacher

Discussions similaires

  1. quetion toute bête sur le type des pointeurs
    Par Invité dans le forum Débuter
    Réponses: 6
    Dernier message: 20/11/2010, 13h10
  2. Réponses: 8
    Dernier message: 20/02/2006, 15h28
  3. pointeur sur pointeur
    Par gaut dans le forum C
    Réponses: 3
    Dernier message: 01/11/2005, 21h30
  4. Incomplete type
    Par bourbaki2003 dans le forum C++
    Réponses: 2
    Dernier message: 29/10/2005, 12h50
  5. [MYSQL] conversion de type sur import de script
    Par sebos63 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 27/08/2003, 10h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo