kleines Zeigerproblem
-
Hi!
Habe hier mal zum Üben willkürlich ein kleines Programm geschrieben und möchte nun die Variable cd[1], nachdem sie durch 'scanf' beschrieben wurde, den Wert "HALLO" annehmen lassen, tut sie jedoch nicht. Dafür kann ich aber ein einzelnes Zeichen austauschen...
Wo ist der Denkfehler?
MfG#include <stdio.h> #include <stdlib.h> void wechsel(char *zeiger) { char wort[20]="HALLO"; printf("\n%s\n", wort); //strcpy(*zeiger,wort); /*funktioniert nicht*/ *zeiger=wort[0]; /*funktioniert*/ } main() { char cd[100][100]; int i; for (i=0; i<3; i++) { printf("CD%d: ", i+1); scanf("%s", &cd[i]); } printf("\n"); for (i=0; i<3; i++) { printf("CD%d: %s\n", i+1, cd[i]); } wechsel(&cd[1]); printf("\n"); for (i=0; i<3; i++) { printf("CD%d: %s\n", i+1, cd[i]); } getch(); }
-
strcpy erwartet einen zeiger, also gib ihm doch den zeiger.
wenn
type* foo;
dann ist
*foo
type
-
wechsel(*cd);
für getch(); brauchst du noch: #include <conio.h>
cu
-
strcpy erwartet einen zeiger, also gib ihm doch den zeiger.
wenn
type* foo;
dann ist
*foo
typeWie ist das gemeint? Muss ich das Sternchen weglassen, dann gibt er wieder eine Fehlermeldung für strcpy...
-
Sorry, Problem hat sich gelöst!