[language C]
calidor
-
Darshu Messages postés 303 Statut Membre -
Darshu Messages postés 303 Statut Membre -
Bonjour,
J'essaye d'installer lam-mpi sous linux (debian) avec les compilateurs g++ et ifort.
Lors de l'installation j'ai l'erreur suivante:
all_opt.c: In function 'int ao_parse(OPT*, int*, char**)':
all_opt.c:603: invalid conversion from 'void*' to 'char**'
make[2]: *** [all_opt.lo] error 1
et à la ligne 603 de all_opt.c je peux lire:
aod->ao_string_dups = malloc(sizeof(char**) * (*pcmdc + 1));
Evidemment je cause pas du tout C...
Merci de votre aide, c'est supra important!
J'essaye d'installer lam-mpi sous linux (debian) avec les compilateurs g++ et ifort.
Lors de l'installation j'ai l'erreur suivante:
all_opt.c: In function 'int ao_parse(OPT*, int*, char**)':
all_opt.c:603: invalid conversion from 'void*' to 'char**'
make[2]: *** [all_opt.lo] error 1
et à la ligne 603 de all_opt.c je peux lire:
aod->ao_string_dups = malloc(sizeof(char**) * (*pcmdc + 1));
Evidemment je cause pas du tout C...
Merci de votre aide, c'est supra important!
A voir également:
- [language C]
- Vistalizator language pack windows 7 - Télécharger - Traduction
- Windows display language french - Guide
- "Winamp language pack" ✓ - Forum Logiciels
- The language dll vb6fr.dll could not be found - Forum Windows
- Autocad 2008 language pack french - Forum AutoCAD
3 réponses
Il doit manquer un cast, modifi ta ligne par :
aod->ao_string_dups = (char **) malloc(sizeof(char**) * (*pcmdc + 1));
Je ne suis pas d'accord avec toi Radek pour le cast ! Il y en a peut-être besoin, mais c'est un char ***. Soit
Un moyen simple pour s'en souvenir : le cast a toujours une * de plus que le sizeof ;)
aod->ao_string_dups = (char ***) malloc(sizeof(char**) * (*pcmdc + 1));En effet, pour un char*, on fait un malloc(sizeof(char)*n). Pour un char** c'est donc malloc(sizeof(char*)*n) et donc pour un char*** on se retrouve avec malloc(sizeof(char**)*n).
Un moyen simple pour s'en souvenir : le cast a toujours une * de plus que le sizeof ;)