J'ai une fonction principale, main(), et une autre fonction tab(). Je voudrais déclarer un tableau dans la fonction main() et le remplir grace a la fonction tab() :
int main()
{
int tableau[15][20] = tab();
}
int tab()
{
//Lecture dans un fichier et remplissage du tableau
return tableau[15][20];
}
Or le message d'erreur que j'obtiens est :
impossible de convertire un int en int[15][20]
Voila, si vous pouvez m'aider j'en serai très reconaissant :)
while ( !EndOfFile && x < 15 ) /* tu lis dans le fichier dans cette boucle(exemple) */
{
array[x] = malloc( 20 * sizeof(int) ); /* array[x][20] */
for ( y 0; y < 20; ++y ) /* array[x][0 à 19> 20] */
{
LireDansFichier( id_du_fichier, &une_valeur );
array[x][y] = une_valeur;
}
++x; /* next( array[0 à 14 => 15][] */
}
/* fin ... */
(*tab) = array;
}
new et delete sont des fonctions C++, alors que malloc et free sont des fonctions C, je n'ai jamais trop su
size_t est un type de variable pour les tailles d'objets en mémoire. Tu
peux mettre un int ça ne changera rien. Mais c'est un type de variable
spécifique pour les tailles
new/delete sont une `surcouche` à malloc()/free(), cependant,
new/delete sont très important en C++ car il permettent l'appel
`automatique` des constructeurs/destructeurs des objets et ca, c'est
important ...