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 :

erreur de segmentation


Sujet :

C

Vue hybride

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 102
    Par défaut erreur de segmentation
    bonjours a tous

    quelqu'un pourrait-il m'expliquer ce qu'est cette erreur

    mon programme est pourtant un programme simple

    il s'agit d'une fonction qui retourne un tableau avec 6 valeur j'ai donc utiliser les pointeurs!!

    merci pour celui qui a une piste a mon probleme

  2. #2
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par acik59
    bonjours a tous

    quelqu'un pourrait-il m'expliquer ce qu'est cette erreur

    mon programme est pourtant un programme simple

    il s'agit d'une fonction qui retourne un tableau avec 6 valeur j'ai donc utiliser les pointeurs!!

    merci pour celui qui a une piste a mon probleme
    Montrer un peu de code serait sympa non ?

    Jc

  3. #3
    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 : 48
    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
    Le code source serait le bienvenue pour pouvoir t'aider !
    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 !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 102
    Par défaut
    oki alors voila le code source!!

    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
    float *calcul(float x,float y,float z)
    {
    float *tab;
    float x1,y1,z1;
    x1=x*tan(0.5);
    y1=y*cos(0.5);
    z1=z*sin(0.5);
    tab[0]=x1;
    tab[1]=y1;
    tab[2]=z1;
    return tab;
    }
     
     
     main()
     
     {
     float *ch;
     ch=calcul(0.5,0.5,0.5);
     printf("%f",ch);
     
     }

  5. #5
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    - Il faudrait allouer l'espace pour ton tableau tab, non ?
    - C'est int main avec un return 0; à la fin de la fonction
    - Il faudra libérer la mémoire dans le main.

    Jc

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 102
    Par défaut
    pourrait tu m'indiquer comment faire pour allouer la memoire

    car je n'est jamais utiliser cette fonction

  7. #7
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par acik59
    pourrait tu m'indiquer comment faire pour allouer la memoire

    car je n'est jamais utiliser cette fonction
    Voici une version avec allocation dynamique :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    #include <stdlib.h>
    #include <math.h>
    #include <stdio.h>
     
    float *calcul(float x,float y,float z)
    {
    float *tab;
     
    tab = malloc(3*sizeof(*tab));
     
    /* Test l'allocation */
    if(tab == NULL) {
      return NULL;
    }
     
    tab[0]=x*tan(0.5);
    tab[1]=y*cos(0.5);
    tab[2]=z*sin(0.5);
    return tab;
    }
     
    int main()
    {
     float *ch;
     ch=calcul(0.5,0.5,0.5);
     
    if(ch != NULL) {
     printf("%f %f %f",ch[0], ch[1], ch[2]);
     free(ch);
    } 
    else {
      printf("Probleme avec la fonction calcul\n");
    }
    return 0;
    }
    Ou sinon, plus simple :
    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
     
    #include <stdlib.h>
    #include <math.h>
    #include <stdio.h>
     
    void calcul(float *tab, float x,float y,float z)
    {
    tab[0]=x*tan(0.5);
    tab[1]=y*cos(0.5);
    tab[2]=z*sin(0.5);
    return tab;
    }
     
    int main()
    {
     float ch[3];
     calcul(ch, 0.5,0.5,0.5);
     
     printf("%f %f %f",ch[0], ch[1], ch[2]);
     
     
    return 0;
    }
    Jc

  8. #8
    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 acik59
    pourrait tu m'indiquer comment faire pour allouer la memoire

    car je n'est jamais utiliser cette fonction
    Euh, non. Question basique.

    Les bases du C se trouvent dans ton livre de C ou dans un des nombreux tutoriels référencés sur ce site (ou le mien).

    Il ne faut pas se lancer dans des développements si tu ne maitrises pas les bases du C.

    Le C n'est pas un langage jouet. C'est un langage de professionnels avertis, car il est bourré de pièges. Il faut 6 mois à un an pour en maitriser les bases.

    Plus que jamais, "C is a sharp tool".

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

Discussions similaires

  1. Erreurs de segmentation !
    Par anti-conformiste dans le forum Applications et environnements graphiques
    Réponses: 16
    Dernier message: 18/10/2005, 11h11
  2. Erreur de segmentation
    Par Trunks dans le forum C
    Réponses: 3
    Dernier message: 06/10/2005, 18h28
  3. Erreur de segmentation (Inconnue)
    Par Dark-Meteor dans le forum C
    Réponses: 5
    Dernier message: 08/09/2005, 13h42
  4. [Dev-C++] Erreur de segmentation...
    Par sas dans le forum Dev-C++
    Réponses: 11
    Dernier message: 26/03/2005, 14h25
  5. erreur de segmentation
    Par transistor49 dans le forum C++
    Réponses: 10
    Dernier message: 15/03/2005, 11h18

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