Je suis débutant en programmation C,
Je dois faire un algorithme dans le cadre de mes études, étant trop gourmand sous Matlab, je tente de le traduire en C.
Au départ je récupère deux tableaux présents dans des formats .txt, tout se passe bien.
J'importe les valeurs dans deux tables M et N. je fais un fprintf des tables, elles sont bonnes. Ensuite je crée une matrice A et je mets totues les valeurs à zéro et là, problème les 3 premières lignes de mon tableau M se mettent aussi à zéro. Par la suite quelque soient les modifications que j'opère sur la matrice A, les trois premières lignes de M sont aussi modifiées.
Voici mon code :
#include <stdio.h>
int main()
{
FILE *ReadInput;
int M[7][2];
ReadInput = fopen("/Users/Documents/Comm Network/ASLinkTest.txt","r" ) ;
for (int i=1 ; i<8 ; i++)
{
for (int j=1;j<3;j++)
{
fscanf(ReadInput,"%i",&M[i][j]);
}
}
fclose(ReadInput) ;
int N[8];
ReadInput = fopen("/Users/Documents/Comm Network/ASListTest.txt","r" ) ;
for (int i=1 ; i<9 ; i++)
{
fscanf(ReadInput,"%i",&N[i]);
}
fclose(ReadInput) ;
Jusqu'ici tout va bien , et dès que je crée la matrice A, hop les trois premières lignes de M subissent les mêmes changements que sur A.
int A[8][8];
for (int i=1;i<9;i++)
{
for (int j=1;j<9;j++)
{
A[i][j]=0;
}
}
}
J'avoue que je ne comprends pas vraiment ce qui se passe ici.
Je remercie d'avance celui qui pourra éclairer ma lanterne.

Je vais essayer de voir ce que je peux faire avec malloc.
J'avais plutôt l'habitude de programmer en Java, je n'avais jamais rencontré ce genre de problème.
Voici la solution pour déclarer la matrice 8x8 en bon et due forme :
int** A; A=(int**)(malloc(8*sizeof(int*))); for (int i=0;i<9;i++) { A[i]=(int*)(malloc(8*sizeof(int))); } for (int i=1;i<9;i++) { for (int j=1;j<9;j++) { A[i][j]=0; } }Merci beaucoup !