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 de segmentation suite à un sprintf


Sujet :

Bibliothèque standard C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Par défaut Erreur de segmentation suite à un sprintf
    Bonjour à tous ! Voilà je vous expose mon problème.

    Je travail en ce moment sur un programme charger de capturer un flux sur un périphérique (usb) seulement lorsque je veux transferer ces données vers une variable grace à sprintf j'ai droit au signal SIGSEGV (segmentation).

    Voilà mon code :

    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
     
    char buf[65535];
    char *cmp_1;
     
    (...)
    	while(1)
    	{
    	ret = usb_interrupt_read(handle,bEndpointAddress,buf,256,100);
    	if (ret) {
    		for (i=0; i<ret; i++) {
                             sprintf(cmp_1,"%02x",((int) buf[i] & 0x0ff));
    				printf("cmp_1 :[%s]",cmp_1);
    			}
    		}
    	}
    Je ne comprend pas car un simple printf("%02x",((int) buf[i] & 0x0ff)); fonctionne et je ne pense pas avoir fait une erreur de codage...

    Merci de m'aider ^^.

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Ton pointeur cmp_1 ne pointe sur rien.

    Deux possibilité : le faire pointer sur quelque chose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char buffer[256];
    cmp_1 = buffer;
    sprintf(cmp_1,"%02x",((int) buf[i] & 0x0ff));
    Passer à sprintf un tableau et non un pointeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char buffer[256];
    sprintf(buffer,"%02x",((int) buf[i] & 0x0ff));

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Par défaut
    Merci beaucoups ! Je n'ai pas penser qu'il fallait forcément allouer de la mémoire à mon pointeur, je pensais que sprintf le fesait a ma place...

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

Discussions similaires

  1. Suite de Stern-Brocot, erreur de segmentation
    Par joelafrite3774 dans le forum D
    Réponses: 3
    Dernier message: 22/12/2013, 20h11
  2. Erreur de segmentation (Inconnue)
    Par Dark-Meteor dans le forum C
    Réponses: 5
    Dernier message: 08/09/2005, 13h42
  3. [Dev-C++] Erreur de segmentation...
    Par sas dans le forum Dev-C++
    Réponses: 11
    Dernier message: 26/03/2005, 14h25
  4. erreur de segmentation
    Par transistor49 dans le forum C++
    Réponses: 10
    Dernier message: 15/03/2005, 11h18
  5. Réponses: 2
    Dernier message: 04/03/2003, 23h24

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