Bonjour,
J'ai une sale erreur avec des pointeurs, voici le message d'erreur de gcc:
assignment makes pointer from integer without a cast
J'en ai 8 au totales des comme ca.
voici mon code, c'est juste pour géré des arguments sur un programme :
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/*
gestion des arguments
*/
void arguments_manager(char * input_file, char * output_file, int * threads_number, int arguments_number, char * argv[])
{
switch(arguments_number)
{
case 1 :
printf("argument needed\n\n -help for the help\n");
break;
case 2 :
if(strcmp(argv[1],"-help")==0)
{
printf("The possible arguments are : \n");
printf(" -n NUM : number of threads, by default 2. \n");
printf(" -o OUTPUT_FILE : output file, if there is no one, the result will be printed. \n");
printf(" INPUT_FILE : the input file. \n");
printf(" In resume you can use the programme like this : \n matrixprod [-n NUM] [-o OUTPUT_FILE] INPUT_FILE \n");
}
else
{
*input_file = argv[1];
}
break;
case 4 :
if(strcmp(argv[1],"-n")==0)
{
*threads_number = atoi(argv[2]);
*input_file = argv[3];
}
else if(strcmp(argv[1],"-o")==0)
{
*output_file = argv[2];
*input_file = argv[3];
}
else
{
printf("argument error\n\n -help for the help\n");
}
break;
case 6 :
if((strcmp(argv[1],"-n")==0) && (strcmp(argv[3],"-o")==0))
{
*threads_number = atoi(argv[2]);
*output_file = argv[4];
*input_file = argv[5];
}
else if((strcmp(argv[1],"-o")==0) && (strcmp(argv[3],"-n")==0))
{
*threads_number = atoi(argv[4]);
*output_file = argv[2];
*input_file = argv[5];
}
else
{
printf("argument error\n\n -help for the help\n");
}
break;
default : printf("argument error\n\n -help for the help\n");
}
}
/*
main
*/
int main(int argc, char * argv[])
{
int i, threads_number=2;
char input_file[15]="", output_file[15]="";
printf("nombre d'argument = %d\n",argc);
for(i = 0; i<argc; i++)
{
printf("argument %d : %s\n",i,argv[i]);
}
arguments_manager(input_file, output_file, &threads_number, argc, argv);
printf("fichier d'entrée : %s\n",input_file);
printf("fichier de sortie : %s\n",output_file);
printf("nombre de thread : %d\n",threads_number);
return 0;
}
merci à tous!
