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

Bibliothèque standard C Discussion :

Erreur bizarre avec sprintf


Sujet :

Bibliothèque standard C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 6
    Par défaut Erreur bizarre avec sprintf
    Bonjour

    Alors voilà, j'ai une erreur plus que surprenante avec sprintf!
    Ca ne fonctionne tout simplement plus... Je n'ai rien fait de particulier et des programmes qui fonctionnaient très bien avant plantent lors de l'appel de cette fonction

    Alors pour m'en assurer j'ai fais un programme très basique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #include <stdio.h>
     
    int main(int argc, char *argv[]) {
      char* test = "";
      int i = 3;
      sprintf(test, "blabla%d", i);
      printf("%s", test);
     
      return 0;
    }
    Ca compile comme il faut, mais lorsque je lance mon programme voilà l'erreur que j'obtient : Erreur de segmentation (core dumped)

    Et printf fonctionne toujours comme il faut...

    Une idée?

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Ben tu n'as pas alloué de mémoire pour test, pire tu le fais même pointer vers un emplacement qui est peut-être en lecture seule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include <stdio.h>
     
    int main(int argc, char *argv[]) {
      char test[126];
      int i = 3;
      sprintf(test, "blabla%d", i);
      printf("%s", test);
     
      return 0;
    }
    Pour plus de sécurité mieux vaut utiliser snprintf.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 6
    Par défaut
    Effectivement! Pourtant mes autres programmes fonctionnaient comme ça!
    Comprend pas...

  4. #4
    Membre émérite Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Par défaut
    Citation Envoyé par Chozac Voir le message
    Effectivement! Pourtant mes autres programmes fonctionnaient comme ça!
    Comprend pas...
    Un miracle ? de la chance peux être.

  5. #5
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par |PaRa-BoL Voir le message
    Un miracle ? de la chance peux être.
    Une mauvaise conception, une méconnaissance du langage C et aussi une dose de chance (ou pas ça dépend où l'on se place).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur bizarre avec mechanize
    Par Invité dans le forum Réseau/Web
    Réponses: 14
    Dernier message: 15/11/2010, 10h19
  2. erreur bizarre avec scanf :-(
    Par membreComplexe12 dans le forum C
    Réponses: 4
    Dernier message: 04/10/2010, 09h40
  3. Une erreur bizarre avec les InputStream
    Par Lyuna dans le forum Général Java
    Réponses: 5
    Dernier message: 05/02/2010, 11h14
  4. Ecran bleu avec Messages d'erreur bizarres ?
    Par masta64 dans le forum Windows XP
    Réponses: 5
    Dernier message: 04/11/2006, 14h25
  5. Erreur bizarre avec le module DBI
    Par Jim_Nastiq dans le forum SGBD
    Réponses: 7
    Dernier message: 12/04/2006, 17h28

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