В приведенном ниже фрагменте кода я могу заменить char * на const char * и удалить вызов функции strdup () и напрямую принять значение optarg, установленное getopt ()? Я рекомендую использовать const char *, чтобы пропустить использование функции strdup. Заранее признателен за помощь.
/* 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...
}
}
Я действительно не понимаю необходимости в этом.
Редактировать: Спасибо за ответы. Это было действительно полезно. Я изменил код на const char * и пропустил вызов strdup.
Спасибо,
Liju * 1008 *