Dans l'extrait de code ci-dessous, puis-je remplacer char * par const char * et supprimer l'appel à la fonction strdup() et prendre directement la valeur optarg définie par getopt() ? On me conseille d'utiliser const char * pour éviter l'utilisation de la fonction strdup. Merci d'avance pour votre aide.
/* Code Snippet */
char *dir = NULL;
char *bld = NULL;
int chr;
while ( ( chr = getopt( argc, argv, "d:a:b:f:" ) ) != -1 ) {
switch ( chr ) {
case 'd': //Directory parameter
dir = strdup( optarg );
if (dir == NULL) { /*Error*/ }
case 'b': //Build parameter
bld = strdup( optarg );
if (bld == NULL) { /*Error*/ }
...other code...
}
}
Je ne comprends vraiment pas la nécessité de le faire.
Edit : Merci pour les réponses. C'était vraiment utile. J'ai modifié le code en const char * et j'ai sauté l'appel strdup.
Merci, Liju