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 lorsque je change la taille du tableau


Sujet :

C

  1. #21
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 52
    Points : 19
    Points
    19
    Par défaut
    Bonjour
    voilà c'est le programme de nouveau
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #define SIZE 500
     
    typedef int matrice [SIZE][SIZE];
     
    int nb, i , j, k;
     
    int* matrice_A;
     
    int* vecteur;
     
    int* matrice_res;
     
    // Allocations
     
    matrice_A = (int*) malloc(SIZE*SIZE*sizeof(int)) ;
     
    vecteur = (int*) malloc(j*SIZE*sizeof(int)) ;
     
    matrice_res = (int*) malloc(SIZE*SIZE*sizeof(int)) ;
     
     
     
    for(i = 0; i < SIZE; i++) {
     
        for(j = 0; j < SIZE; j++) {
     
            matrice_A[i*SIZE + j] = (int)rand()/(int)RAND_MAX;
     
            vecteur [i*SIZE ] = (int)rand()/(int)RAND_MAX;
     
        }
     
    }
     
    void remplissage_matrice (matrice matrice_A , int n)
    {
        int i ;
        int j ;
     
        for (i=0; i<n; i++)
            for (j=0; j<n; j++)
            {
                matrice_A[i][j]=(rand()%10);
            }
    }
     
    void afficher_matrice (matrice matrice_A , int n)
    {
        int i ;
        int j ;
        printf("affichage de  matrice \n");
        for (i=0; i<n; i++)
        {
            for (j=0; j<n; j++)
                printf("%d ",matrice_A[i][j]);
            printf("\n");
        }
     
    }
     
    void remplissage_vecteur (int vecteur[] , int n)
    {
        int i ;
     
        for (i=0; i<n; i++)
        {
            vecteur[i]=(rand()%10);
        }
    }
    void afficher_vecteur (int vecteur[] , int n)
    {
        int i ;
        printf("\n====>affichage de vecteur<=== \n");
        for (i=0; i<n; i++)
        {
            printf("%d", vecteur[i]);
            printf("\n");
        }
    }
     
    void produit ( matrice matrice_A ,int vecteur[], int n)
    {
     
        int z ;
        int x ;
        matrice p;
        for (i=0; i<n; i++)
        {
            for (j=0; j<n; j++)
            {   p[i][j]=0;
                p[i][j]+=matrice_A[i][j]*vecteur[j];
            }
     
        }
        printf("affichage de produit de matrice par vecteur \n");
        for (z=0; z<n; z++)
        {
            for (x=0; x<n; x++)
                printf("%d ",p[z][x]);
            printf("\n");
        }
     
    }
     
    int main(void)
    {
        int n=SIZE;
        matrice A; /* matrice donnée   */
        int v[n] ;    /* vecteur donné */
        remplissage_matrice(A,n);
        remplissage_vecteur(v,n);
        afficher_matrice(A,n);
        afficher_vecteur(v,n);
        int timer=0;
        produit(A,v,n);
        timer=clock();
        printf("temp d'exectuion = %d ms \n",timer);
     
    }

  2. #22
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par samirahal Voir le message
    voilà c'est le programme de nouveau
    Oui, effectivement il y a vraiment de quoi pleurer. Mais comme disais Grospiron, ce sont les jambes qui dirigent les skis et non les skis qui dirigent les jambes. C'est toi qui maitrise ton ordinateur, c'est à toi de lui indiquer ce que tu veux qu'il fasse parce que lui, il ne peut pas le deviner.

    Citation Envoyé par samirahal Voir le message
    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
     
    typedef int matrice [SIZE][SIZE];
     
    int nb, i , j, k;
     
    int* matrice_A;
     
    int* vecteur;
     
    int* matrice_res;
     
    // Allocations
     
    matrice_A = (int*) malloc(SIZE*SIZE*sizeof(int)) ;
     
    vecteur = (int*) malloc(j*SIZE*sizeof(int)) ;
     
    matrice_res = (int*) malloc(SIZE*SIZE*sizeof(int)) ;
     
     
     
    for(i = 0; i < SIZE; i++) {
     
        for(j = 0; j < SIZE; j++) {
     
            matrice_A[i*SIZE + j] = (int)rand()/(int)RAND_MAX;
     
            vecteur [i*SIZE ] = (int)rand()/(int)RAND_MAX;
     
        }
     
    }
    Ouais ben super. Là t'as carrément du code en dehors de toute fonction.

    J'ai lu une fois une aventure d'Iznogood, le vizir (bd). Dans cette aventure il y a une fée qui exauce les voeux mais qui les exauce à l'envers. Il y a par exemple deux frères jumeaux, l'un beau, l'autre laid. Un des frères indique à la fée que c'est assez injuste. La fée acquiese et hop, les deux frères se retrouvent pareils mais laids tous deux.

    Là j'ai l'impression de me retrouver dans cette même BD. Tu as une fonction main() et d'autres fonctions qui sont définies à l'intérieur. On te dit que c'est interdit et toi, tu fais quoi ? Ben au lieu de sortir les fonctions en dehors du main() tu préfères supprimer le main().

    Si tu ne connais pas les bases du C (les fonctions, leur définition, la façon de les appeler) ben tu commences par l'apprendre. Ensuite, tu pourras te concentrer sur l'allocation dynamique et même là te faudra le faire par étapes (d'abord à une dimension, puis ensuite à deux dimensions).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #23
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 52
    Points : 19
    Points
    19
    Par défaut
    t'as raison Sve@r je doit apprendre les bases et Merci surtout pour l'histoire des deux frères......

  4. #24
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Ton code ne compile même pas et tu oses dire "voici mon programme"...

    Pour rappel, nous ne ferons pas ton travail à ta place : http://club.developpez.com/regles/#LIV-N

    Nous t'avons indiqué plein de choses, maintenant il te faut prendre le temps de comprendre tout ça. Je te conseille vivement de repartir d'un fichier vide et de recommencer entièrement. Ainsi, tu pourras te poser clairement la question de ce que tu dois faire et comment le faire.

  5. #25
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 52
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Bktero Voir le message
    ...
    Après avoir pris du temps à comprendre voilà je suis de retour en espérant trouver une solution cette foi, j'ai essayé de mettre des commentaires pour que le programme soit plus clair

  6. #26
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par samirahal Voir le message
    cette foi, j'ai essayé de mettre des commentaires pour que le programme soit plus clair
    C'est super. Mais si tu viens sans poser de question ni nous montrer ton programme, on ne peut rien pour toi...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

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