Chez moi le programme plante car path n'est pas alloué.
Mes warnings sont :
plop.c: In function ‘int main()’:
plop.c:439: warning: format ‘%s’ expects type ‘char*’, but argument 3 has type ‘char (*)[500]’
plop.c:440: warning: format ‘%s’ expects type ‘char*’, but argument 3 has type ‘char (*)[500]’
plop.c:448: warning: format ‘%s’ expects type ‘char*’, but argument 3 has type ‘char (*)[500]’
plop.c:362: warning: unused variable ‘imageWidth’
plop.c:363: warning: unused variable ‘imageHeight’
plop.c:364: warning: unused variable ‘bitPerPixel’
plop.c:365: warning: unused variable ‘planeNumber’
plop.c:376: warning: unused variable ‘File_Testing’
plop.c:394: warning: unused variable ‘bmpFileName’
Conseils :
1) Plutôt que de demander Path: demande plutôt le répertoire ou sont stockés les bmp.
2) Enlève le header <conio.h> qui empêche la compilation sous linux et qui ne me paraît pas utile (ça compile sans).
3) Remplace system("PAUSE") par getchar() qui marchera sous linux et windows.
Chez moi le programme semble marcher correctement mais crée des images noires. Le résultat est identique qu'il y ait les variables inutiles ou pas. Tu peux donc les supprimer. Ci dessous les sections de code que j'ai modifié :
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
//#include <conio.h> //mando
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
//........
int main()
{
// VARIABLES DECLARATION
// Variables relative to the image characteristics
// unsigned long imageWidth; // Image width //mando
// unsigned long imageHeight; // Image height //mando
// unsigned short bitPerPixel; // = 8 for 256 color BMP image //mando
// unsigned short planeNumber; // Number of planes : = 1 for 256 color images //mando
unsigned short threshold=90; // Threshold to distinguish between Iron and Grafit
// Variables relative to the pixel position
unsigned long pixIdx; // pixel index number
unsigned long colIdx; // column index number
unsigned long rowIdx; // row index number
unsigned long depthIdx; // image number
unsigned long nodIdx; // node index number
// Variable to test the existence of the input file
// unsigned int File_Testing; //mando
// Variable to count the number of files in the folder
unsigned int File_Number;
// Variables to read the folder, extract the list of files
struct dirent *lecture;
char path[512]; //mando
DIR *rep;
FILE *File_List;
FILE *File_Coordinates;
BMPFILE * bmpf ;
byte *bitmap ;
// Variables to save the list of files to analyse
char list[500];
char files_names[500];
// char bmpFileName[200]; //mando
//...................
do
{
printf("Path: ");
scanf("%s",&path); //mando
printf("\n");
if(path[strlen(path)-1]!='/')
strcat(path,"/");
} while((rep = opendir(path)) == NULL);
//...................
fclose(File_List);
fclose(File_Coordinates);
printf("\n\n\tAnalysis complete, please check Coordinates.txt to retrieve data\n\n");
// system("PAUSE"); //mando
getchar(); //mando
return(0)
}
Bonne chance
Le code est disponible sur : www.infotuto.com/Pb_Variables.c
Je compile en effet avec DevC++ déjà, les seuls warnings restants sont ceux qui me disent que les variables ne sont pas utilisées ...
Merci
Bergie
J'ai essayé de déboguer en mettant des pauses, des printfs un peu partout, le programme plante juste après avoir entré le chemin des images, que je rajoute des variable sou que j'essaye de virer les fameuses variables inutilisées ...
C'est vraiment étrange...
Pour avoir les warning, j'utilisais un autre IDE (MinGW Studio)