Hey,
ich wollte eine Funktion schreiben, die zwei Zeichenketten miteinander tauscht. Dabei dachte ich mir: Tausche doch einfach die Pointer. Mein Code:
sollte theoretisch funktionieren, tut er auch, aber es gilt von vornherein "*text1 = 72 = *text2" was ich nicht ganz nachvollziehen kann. Offenbar klappt das wechseln der Pointer nicht?
ich wollte eine Funktion schreiben, die zwei Zeichenketten miteinander tauscht. Dabei dachte ich mir: Tausche doch einfach die Pointer. Mein Code:
Code:
#include <stdio.h>
void tausche(char *text1, char *text2)
{
printf("%u %u\n", *text1,*text2);
int temp = *text1;
*text1 = *text2;
*text2 = temp;
printf("%u %u\n", *text1,*text2);
}
int main()
{
char text1[] = "Hallo1", text2[] = "Hallo2";
// printf("text1: %s\ntext2: %s\n", text1, text2);
tausche(text1, text2);
// printf("text1: %s\ntext2: %s\n", text1, text2);
return 0;
}
sollte theoretisch funktionieren, tut er auch, aber es gilt von vornherein "*text1 = 72 = *text2" was ich nicht ganz nachvollziehen kann. Offenbar klappt das wechseln der Pointer nicht?
Zuletzt bearbeitet: