I want to store each line of the file in an 2D array, and anthor array pointing each line (so I can identify each line), I need to pass this pointers array to a function so I can manipulate my lines, I d'ont know how to do that
I have this code to read and store in the arrays
char ligne[MAX]; //open end test the file FILE* fichier = fopen("csp.txt","r"); if(fichier == NULL){ printf("can't open the file \n"); return EXIT_FAILURE; } //the first line in the file contain number of other lines fgets(ligne, sizeof(ligne), fichier); int nbrTaille = strtol(ligne, NULL, 10); //array of pointers char (*tab)[nbrTaille] = malloc(nbrTaille * sizeof(ligne)); int i = 0; //tab array point each line while(fgets(ligne, sizeof(ligne), fichier)){ if(ligne == NULL) EXIT_FAILURE; strncpy(tab[i], ligne, strlen(ligne)); printf("line%d : %s\n", i, tab[i]); i++; } //call the funnction by passing array of pointers and the number of lines allDiff(tab, nbrTaille); the file I'm reading is
2 1 2 2 3 to receive the array by the function I tried this but it doesn't work
void allDiff(char** T, int taille)
//array of pointersis not accurate. That doesn't declare an array of pointers; it declares a pointer to an array. There is a difference. That decl should bechar (*tab)[MAX] = .... If you want a dynamic allocation for each string then all of that needs to change. And unrelated,if(ligne == NULL) EXIT_FAILUREis worthless.ligneis an automatic array and will thus never beNULL.