Bonjour,

J'ai créer un programme qui calcule le produit matricie et vecteur

Voilà mon programme de test :
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
typedef int matrice [1000][1000];
void remplissage_matrice (matrice mat , int n)
{
	int i ;
	int j ;
 
for (i=0; i<n; i++)
    for (j=0; j<n; j++)
        {
         mat[i][j]=(rand()%10);
        }
}	
 
void afficher_matrice (matrice mat , 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 ",mat[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("affichage de vecteur \n");
	 for (i=0; i<n; i++)
	 {
		 printf("%d", vecteur[i]);
		 printf("\n");
	 }
}
void produit ( matrice mat ,int vecteur[], int n)
{
int i ;
int j ;
int k ;
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]+=mat[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=1000;
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);
}
Ca marche si je met la taille à 1000 mais si je met 5000 comme taille j'ai une erreur de segmentation .Merci d'avance