Allocation dynamic de tableau 2D dans la fonction (utilisation de pointeurs pour renvoyer l’adresse de l’object atsortingbué)

Je voudrais savoir comment passer des pointeurs à des tableaux alloués dynamicment en utilisant des arguments de fonction. Cette fonction est supposée allouer un tableau 10×10 (les contrôles sont ignorés pour des raisons de simplicité). Est-ce possible? Qu’est-ce que je fais mal? Merci d’avance.

int array_allocate2DArray ( int **array, unsigned int size_x, unsigned int size_y) { array = malloc (size_x * sizeof(int *)); for (int i = 0; i < size_x; i++) array[i] = malloc(size_y * sizeof(int)); return 0; } int main() { int **array; array_allocate2DArray (*&array, 10, 10); } 

    Essayez quelque chose comme ça:

     int array_allocate2DArray (int ***p, unsigned int size_x, unsigned int size_y) { int **array = malloc (size_x * sizeof (int *)); for (int i = 0; i < size_x; i++) array[i] = malloc(size_y * sizeof(int)); *p = array; return 0; } int **array; array_allocate2DArray (&array, 10, 10); 

    J'ai utilisé le p temporaire pour éviter toute confusion.

    Je suis tombé sur ce message lorsque je rencontrais un problème similaire (je cherchais un moyen d’allouer de manière dynamic un tableau de chaînes en C). Je préfère renvoyer le pointeur de tableau à partir de la fonction. Ce qui suit a fonctionné pour moi (je l’ai adapté à votre tableau d’entiers). J’ai défini arbitrairement 99 pour chaque valeur afin de pouvoir les voir imprimées en mode principal.

     int **array_allocate2DArray(unsigned int size_x, unsigned int size_y) { int i; int **arr; arr = malloc(size_x*(sizeof(int*))); for (i=0 ; i