strncpy() & casting problem
-
Hallo alle zusammen!
bei der verwendung der Funktion strncopy habe mich gegen diese konvertierungs Probleme gestoßen. Der Fehler habe ich als Kommentar geschrieben.
Wenn jemand mir dabei helfen kann wäre sehr net... char *loc; size_t n = 4; char Rsrv [10][5]; char quelle[] = "abcdefghijk_lmnopqrstuvwxyz"; /* Suche durchführen. */ loc = strchr(quelle, ch); /*Kopieren*/ printf("Rsrv vor Aufruf von strncpy = %s\n", Rsrv); strncpy(Rsrv, loc, n);//Der Fehler lautet: //Konvertierung des Parameters 1 von 'char [10][5]' //in 'char*' nicht möglich //Die Typen auf die verwiesen wird , sind nicht //verwandt; die konvertierung erfordert einen reinterpret_cast-Operator //oder eine Typumwandelung im C- oder Funktionsformat printf("Rsrv nach Aufruf von strncpy = %s\n", Rsrv); return(0); }
-
Du hast ein fundamentales Zeigerproblem. ein [][] ist im Prinzip ein ** , allerdings arbeiten Zeichenketten mit char* und nicht mit char**. Von daher musst du deine Zeiger noch auf irgendeine Weise dereferensieren.
-
strncpy(Rsrv[ZAHL], loc, n);
Wobei ZAHL eine Zahl von 0 bis 9 sein muss.
strcpy() verlangt einen char*, du übergibst ihm aber einen char** (wegen der 2 Dimensionen von Rsrv).
Edit: Bekackte 3 Sekunden