C Implementierung von strcpy ändert den Variablenwert nicht [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Änderung der im Zeiger enthaltenen Adresse mit der Funktion 5 Antworten

Also, ich versuche, mein eigenes strcpy zu implementieren, um ein besseres Verständnis dafür zu bekommen, wie Zeiger in C funktionieren, und bis jetzt bin ich ratlos. Ich habe viele verschiedene Ansätze ausprobiert und versucht, Code aus dem Netz zu verwenden, um vielleicht später auf meinen aufzubauen, aber selbst diese funktionieren nicht.

Ich glaube, ich könnte die Funktion in der Hauptmethode in der falschen Weise aufrufen. Ich übergebe einen Zeiger der Variablen an die Funktion, damit die Funktion den Wert der Variablen ändern kann, und beim Funktionsaufruf gebe ich die Adresse des Zeigers an, damit die Methode die richtigen Daten abrufen kann. Zumindest glaube ich, dass es so funktioniert, soweit ich es verstehen kann.

Hier sind die Funktionen und die Methodenaufrufe:

Funktionsaufruf:

void my_strcpy( char *dest, const char* src ) {

dest = malloc(sizeof(src));

while ( src != '\0' ) {
  *dest = *src;
  src++;
  dest++;
 }

}

Main

int main () {

const char* s = "Hello World";
char* test = 'd';

my_strcpy( &test, &s ); // Suposed to change test form d to Hello World.
printf("Changed String: " );
printf( "%c", test );


return 0;
}

PS: Ich habe versucht, test als Zeichenfolge zu verwenden, die größer als s ist, um festzustellen, ob es sich um ein Speicherzuordnungsproblem handelt. Dies scheint jedoch nicht der Fall zu sein. Jede Hilfe wird sehr geschätzt, da ich stundenlang in diesem stecken geblieben bin ...

PS: Ich habe mir die Frage und Beispiele angesehen, wie man die Variable ändert und mit einem einfachen Int. Aber ich kann es nicht tun, wenn ich char * benutze. Daher die Post. Ich entschuldige mich, wenn das Problem dasselbe ist, aber ich kann einfach nicht verstehen, was ich hier falsch mache. Bitte haben Sie Geduld mit mir, da ich ein Anfänger in C. bin.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage