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

C++ Discussion :

Problem avec les pointeurs


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 14
    Par défaut Problem avec les pointeurs
    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
    22
    23
    24
     
    #include <stdio.h>
    #include <string.h>
     
     
     
    void main(void)
    {
    	char *s ;
    	int i=0;
     
     
     
    	printf("saisie le mot à vérifier : \n");
    	char* gets(char *s);
    	printf("%s",*s);
    	while(*(s+i)!='\0')
    	{
    		i++;
    	}
    	printf("la longueur de la chaine est %i\n",i);
     
     
    }
    c un petit programme pour calculer la langeur d'une chaine mais le problèm c'est que l'ors de l'exécution il y'aura un problém au niveau adresses mémoires alors est ce qu'il y'as quelqu'un qui peux m'aider à résoudre ce problém??? la solution doit étre avec les pointeurs

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Par défaut
    Tu alloue de la memoire pour y stocker un pointeur, mais tu n'alour aucune memoire vers ce quoi pointe ce pointeur.

    mais la a prioris, c'est un problem qui releve du C.

  3. #3
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    C'est du C, pas du C++ et en plus tu n'écris pas bien.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Par défaut
    1/ c'est bien du c ce que tu nous propose. Tu programme de facon fonctionnelle, aucune classe, aucun objet, aucun heritage, etc . . .

    Si tu avais fait du c++, exit printf, bonjour cout, exit gets, bonjour cin, etc . . .

    Enfin, c++ fournit une implementation des chaines du coté de std::string.

    2/ Oui, je n'ecris pas bien. Je ne le revendique pas car c'est pas vraiment une qualité, mais en l'occurence, c'est le chaudron qui se moque de la marmitte.

    Enfin, il semblerait que tu n'ai aps saisit certain point de syntaxe du C, et au dela, certain de ses concepts (comme les pointeurs).

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    Beurk!
    Ça compile, ce code ?
    • Ces fichiers d'en-tête sont obsolètes en C++. Leurs équivalents en C++ standard sont <cstdio> et <cstdlib>
    • La fonction main() retourne un int. Toujours.
    • new char *s ; : Je ne sais pas ce que ça fait, ni si ça compile. Mais ce n'est pas correct en tout cas.
    • char* gets(char *s); : Là, tu viens de déclarer la fonction C gets(), pas de l'utiliser. Et c'est tant mieux, car il ne faut pas utiliser cette fonction: Utiliser fgets() à la place.
    • printf("%s",*s); : Si s est de type char* (ce qui n'est pas sûr vue la façon dont tu l'as déclarée), l'étoile est de trop. De plus, le pointeur s n'est pas initialisé et pointe dans le vide.
    • Quant à ta boucle while() : Il y a la fonction C strlen() pour ça.
    • Ce code est plus du C que du C++

    Bref, il y a pratiquement une erreur à chaque ligne. Du grand art!
    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.

Discussions similaires

  1. probleme avec les pointeurs
    Par solitaire2010 dans le forum Débuter
    Réponses: 3
    Dernier message: 12/06/2010, 13h42
  2. un 'petit' probleme avec les pointeurs
    Par gss3000 dans le forum C++
    Réponses: 4
    Dernier message: 04/01/2010, 15h39
  3. Réponses: 27
    Dernier message: 24/05/2007, 23h29
  4. problem avec les pointeurs
    Par Halloula dans le forum C
    Réponses: 3
    Dernier message: 22/01/2007, 16h54
  5. [Débutant] Probleme avec les pointeurs
    Par amira dans le forum C
    Réponses: 14
    Dernier message: 04/12/2006, 14h27

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