[C] tableau 2D retourné par une fonction

Celia -  
 le père -
Bonjour,

J'ai un probleme : Je dois faire un programme qui crée et modifier un tableau 2D. j'ai donc une fonction int** creation(int tailleTableau) avec un "return tableau;" a la fin.

Lorsque j'appelle cette fonction dans le main, ça marche si j'écris

int  **tableau = creation(10);


Mais ça ne marche pas si j'écris

int **tableau;
**tableau = creation(10);


or je suis obligée d'utiliser la 2eme méthode plus loin dans le programme. Quelqu'un sais ce qui cloche?

2 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Il faut mettre : tableau = creation(10);
    **tableau est équivalent à tableau[0][0], il s'agit d'un int et non d'un pointeur.
    0
  2. le père
     
    Bonjour

    Pour utiliser la deuxième méthode, il faut écrire simplement :

    int **tableau;
    tableau = creation(10);

    tableau est une variable de type int **
    Tu utilises le type pour déclarer la variable (éventuellement en l'initialisant comme dans ta première méthode).
    Mais pourquoi veux-tu donc mettre une partie du type quand tu affectes une variable déjà déclaré ?

    Quand tu as déclaré char x; as-tu l'idée de faire
    ch x='a'; ou
    ar x='a';
    0