Bonjour Luhtor,
A moins que je me sois mal exprimé ou que je me suis fait mal comprendre voir que je n'ai pas donné suffisamment de précision, c'est possible! typedef union { unsigned char tab1[6][10]; unsigned char tab1[10][6]; }==>C'est deux tableau occupent le même espace mémoire et ont la même taille en mémoire...
Ceci pour l'acces au même espace mémoire, mais de façon différente.
Sinon, pour réaliser la transposée, je l'aurait fait avec des pointeurs.. sur qui mon compilateur ne fait pas de contrôle...
Voici le code que j'ai testé : (peut-être m'y suis-je mal pris?)
void test(void) { /*Pour inverser matrice non carré sur un mm espace mémoire PAS OK*/ signed char a,b; int i,j; static signed char matrice[6][4]= { {1,2,3,4}, {11,12,13,14}, {21,22,23,24}, {31,32,33,34}, {41,42,43,44}, {51,52,53,54} }; for (i=0; i<6;i++) for(j= i + 1;j<4;j++) { a = matrice[i][j]; b = matrice[j][i]; matrice[i][j] = b; matrice[j][i] = a; } a=0; }
|