Kann ich in dem unten stehenden Codeschnipsel char * durch const char * ersetzen und den Aufruf der Funktion strdup() entfernen und direkt den durch getopt() festgelegten optarg-Wert übernehmen? Mir wurde geraten, const char * zu verwenden, um die Verwendung der Funktion strdup zu überspringen. Vielen Dank für die Hilfe im Voraus.
/* 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...
}
}
Ich verstehe wirklich nicht, warum das so sein soll.
Edit: Danke für die Antworten. Das war wirklich hilfreich. Ich habe den Code auf const char * geändert und den strdup-Aufruf übersprungen.
Danke! Liju