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

Réseau C Discussion :

error: `new' undeclared (first use in this function)


Sujet :

Réseau C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Par défaut error: `new' undeclared (first use in this function)
    bonjour, tous le monde
    je cherche à compiler sous windows le programme client (qui utilise les sockets) sur le tutorial du site (http://c.developpez.com/WalrusSock/). le message d'erreur est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    file1.c: In function `main':
    file1.c:10: `new' undeclared (first use in this function)
    file1.c:10: (Each undeclared identifier is reported only once
    file1.c:10: for each function it appears in.)
    file1.c:10: parse error before "char"
    file1.c:5: warning: return type of `main' is not `int'
    new c bien pour l'allocation memoire !!

  2. #2
    Membre expérimenté Avatar de Pikwik
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 237
    Par défaut
    Bonjour,

    Ton code doit être en C++ et pas en C
    "new" c'est du C++ pas du C

  3. #3
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par moon93
    new c bien pour l'allocation memoire !!
    En C++, mais pas en C.
    en C c'est malloc/realloc

  4. #4
    Membre chevronné
    Avatar de joellel
    Profil pro
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Par défaut
    new c'est bien en C++, d'accord, mais si tu compiles en C, ça ne va pas le faire
    Ton lien n'est pas valide, montre le code

  5. #5
    Membre expérimenté Avatar de Pikwik
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 237
    Par défaut
    Le lien valide : (Attention aux parenthéses !! )
    http://c.developpez.com/WalrusSock/

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Par défaut
    avec ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    char *buffer = malloc(255* sizeof(char));
    ça marche!

    merci a vous

  7. #7
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par moon93
    avec ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    char *buffer = malloc(255* sizeof(char));
    ça marche!

    merci a vous
    Si c'est un char tu n'est pas obligé de préciser sa taille avec sizeof étant donné qu'un char vaut 1, tu peux donc faire ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    char * buffer = malloc (255);
    et n'oublie pas de vérifier le retour de malloc ... ca t'évitera certains désagrément dans le cas où l'allocation échoue
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  8. #8
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par moon93
    bonjour, tous le monde
    je cherche à compiler sous windows le programme client (qui utilise les sockets) sur le tutorial du site (http://c.developpez.com/WalrusSock/). le message d'erreur est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    file1.c: In function `main':
    file1.c:10: `new' undeclared (first use in this function)
    file1.c:10: (Each undeclared identifier is reported only once
    file1.c:10: for each function it appears in.)
    file1.c:10: parse error before "char"
    file1.c:5: warning: return type of `main' is not `int'
    new c bien pour l'allocation memoire !!
    Là faut sérieusement revoir tes cours de C ... même un programmeur débutant devrais savoir que new c'est pas du C
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Par défaut
    ok, je te remerci

  10. #10
    Membre confirmé Avatar de _kal_
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Par défaut
    Citation Envoyé par Franck.H
    Si c'est un char tu n'est pas obligé de préciser sa taille avec sizeof étant donné qu'un char vaut 1, tu peux donc faire ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    char * buffer = malloc (255);
    et n'oublie pas de vérifier le retour de malloc ... ca t'évitera certains désagrément dans le cas où l'allocation échoue
    Il est trés déconseillé de ne pas utilisé l'opérateur sizeof, cela limite la portabilité du programme. sizeof(char) = 1 sur x86, mais peut être pas sur d'autres plateformes. Donc garde le sizeof pour garantir une portabilité de tes programmes sur d'autre plateformes

  11. #11
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par _kal_
    Il est trés déconseillé de ne pas utilisé l'opérateur sizeof, cela limite la portabilité du programme. sizeof(char) = 1 sur x86, mais peut être pas sur d'autres plateformes. Donc garde le sizeof pour garantir une portabilité de tes programmes sur d'autre plateformes
    sizeof(char) == 1 partout, par definition. C'est la mesure etalon qui donne l'unite de taille de tous les autres types.

  12. #12
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 392
    Par défaut
    Mais le jour où il voudra programmer en TCHAR (ou simplement en wchar_t), il sera bien content de l'avoir, le sizeof...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #13
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par Médinoc
    Mais le jour où il voudra programmer en TCHAR (ou simplement en wchar_t), il sera bien content de l'avoir, le sizeof...
    C'est sûr mais dans son cas ici présent ca ne fait qu'allourdir le code pour rien (même si c'est pas grand chose) !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  14. #14
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par Franck.H
    C'est sûr mais dans son cas ici présent ca ne fait qu'allourdir le code pour rien (même si c'est pas grand chose) !
    oui mais le mieux aurait été Même si dans le cas présent ça revient au même, c'est bien mieux pour la maintenance du code.

  15. #15
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par gege2061
    oui mais le mieux aurait été Même si dans le cas présent ça revient au même, c'est bien mieux pour la maintenance du code.
    Absolument.

Discussions similaires

  1. struc undeclared (first use in this function)
    Par Malcolm98 dans le forum C
    Réponses: 6
    Dernier message: 23/03/2015, 20h40
  2. T_ADDR undeclared (first use in this function)
    Par Kaamui dans le forum Débuter
    Réponses: 3
    Dernier message: 17/02/2012, 13h31
  3. [Lex/Yacc] Example5.l:8: error: 'yylval' undeclared (first use in this function)
    Par scls19fr dans le forum Générateurs de compilateur
    Réponses: 2
    Dernier message: 20/06/2009, 14h52
  4. libpcap PB undeclared (first use in this function)
    Par guiyomh dans le forum Bibliothèque standard
    Réponses: 3
    Dernier message: 07/06/2008, 15h43
  5. Réponses: 23
    Dernier message: 19/01/2006, 23h34

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