Bonjour à tous,
J'ai écris une fonction qui transforme matrice en vecteur. J'ai 0 erreur 0 warnig mais ca m'affiche rien.

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
 
#include <stdio.h>// pour les printf et puts
#include <stdlib.h>// pour les malloc et free
//#include <time.h>
//#include <math.h>
typedef double TYPE ;
typedef TYPE *VECTOR ;
typedef TYPE **MATRIX ;
// transformation d'une matrice en vecteur
double fmv(int const dim1, int const dim2, int dim, double **m_in);
int main()
{
int const dimens1 = 4 , dimens2= 2 ;// on définit les dimensions de la matrice.
int dimens=8;
 
double **mat_in;// matrice de départ
double vect_out[dimens]; //double *vect_out ;
int i, j;
//int i, j; // les indices des boucles.
 
vect_out[dimens] = fmv(dimens1, dimens2, dimens, mat_in);// incompatible types when assigning to type 'double *' from type 'double'
return 0;
}
 
double fmv(int const dim1, int const dim2, int dim, double **m_in)
{
int i;
int j;
 
double v_out[dim] ;// vecteur de départ
// on va créer une matrice et la remplir par des valeurs reconnaissables
m_in = (MATRIX) malloc( dim1 * sizeof(VECTOR) );
   if ( NULL == m_in )
   return EXIT_FAILURE ;
   *m_in = (VECTOR) malloc( dim * sizeof(TYPE) );
   if ( NULL == *m_in )
   return EXIT_FAILURE ;
   /*indiquer que les autres pointeurs de lignes correspondent au début des autres lignes de la matrice*/
   //for ( int i = 1 ; i < dim1 ; ++i )
 
   for ( i = 0 ; i < dim1 ; ++i)
   m_in[i] = m_in[i-1] + dim2 ;
 
   {
      for (j = 0 ; j < dim2 ; ++j)
 
      m_in[i][j] = (TYPE)(10*i+j);
   }
 
   for ( i = 0 ; i < dim1 ; ++i)
   {
      for ( j = 0 ; j < dim2 ; ++j )
      printf( " m_in[%d][%d] = %g \n" , i, j, (double)m_in[i][j] ) ;
   }
   printf(" ") ;
   v_out[dim] = **m_in ;                         // là le vecteur v_out est équivalent à la matrice m_in
   //debut des verifications
 
   printf( " On fait les verifications : " ) ;
   printf( " pour m_in  : %p \n", m_in  ) ;
   printf( " pour *m_in : %p \n", *m_in ) ;
   printf( " pour v_out : %p \n", v_out ) ;
   puts ( " OK pour les adresses \n" );
   for ( i = 0 ; i < dim ; ++i )
      printf( " v_out[%d] = %g \n" , i, (double)v_out[i] );
   puts ( " OK aussi pour les valeurs \n" ) ;
   // fin des verifications
 
 
//free( *m_in ) ;
//free( m_in ) ;
return v_out[dim];
}
voici ce que le compilateur m'affiche:


Compiling: C:\Users\OLGA\Desktop\fonctiontransfmatvect.c
Linking console executable: C:\Users\OLGA\Desktop\fonctiontransfmatvect.exe
Process terminated with status 0 (0 minutes, 6 seconds)
0 errors, 0 warnings

Checking for existence: C:\Users\OLGA\Desktop\fonctiontransfmatvect.exe
Executing: C:\Program Files\CodeBlocks/cb_console_runner.exe "C:\Users\OLGA\Desktop\fonctiontransfmatvect.exe" (in C:\Users\OLGA\Desktop)
Process terminated with status -1073741510 (0 minutes, 14 seconds)


Merci de bien vouloir m'aider. Cordialement,