déclarer une fonction retournant un tableau de 2 jours en c

Cette question est posée à certains égards mais j’ai du mal à comprendre.

int (*q)[3][4] -> q est un pointeur sur un tableau 2D de 3 lignes et 4 colonnes.

Supposons maintenant que je veuille renvoyer un tableau 2D à partir d’une fonction.

 pointer-to-2d-array func() { static 2 day array; return ; } 

Fondamentalement, quelle devrait être la signature de ma fonction. J’ai vu beaucoup d’endroits comme en dessous desquels je ne manque pas

 int (*fun2())[column]; 

J’ai du mal à expliquer / comprendre la signature. Quelqu’un peut-il m’aider s’il vous plaît à ce sujet?

Une approche simple consiste à utiliser typedef :

 typedef int (*ThreeByFourPtr)[3][4]; ThreeByFourPtr fun() { static int res[3][4]= {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}; return &res; } 

L’avantage est que la syntaxe reflète celle de la déclaration du pointeur de type, le nom du type remplaçant le nom de la variable.