Hallo zusammen 
Habe eine Frage. Wenn man einem Pointer ein Array übergibt, steht ja in dem Pointer die Adresse. Bei char wird die Adresse ja immer um einen erhöht. Warum wird das Wort Richtig in diesem Beispiel nicht verändert. ???
Buffer startet ja an folgender Adresse : 1606416613.. Bei dritten durchlauf müsste der pointer ja den Wert
p==1606416615 annehmen. Das 'c' in dem Wort Richtig müsste also zu einem 'a' werden.
Habt ihr eine Idee?
Schöne Grüße !

Habe eine Frage. Wenn man einem Pointer ein Array übergibt, steht ja in dem Pointer die Adresse. Bei char wird die Adresse ja immer um einen erhöht. Warum wird das Wort Richtig in diesem Beispiel nicht verändert. ???
Buffer startet ja an folgender Adresse : 1606416613.. Bei dritten durchlauf müsste der pointer ja den Wert
p==1606416615 annehmen. Das 'c' in dem Wort Richtig müsste also zu einem 'a' werden.
Habt ihr eine Idee?
Schöne Grüße !
Code:
#include <stdio.h>
int main()
{
char buffer[7]="richtig";
char *p=buffer;
printf("%d\n", buffer); // Adresse ist 1606416613
for(int i=0;i<20;i++)
{
p=buffer+i;
if(p==1606416615)
p[0]='a'; // bei dieser Adresse, wo buffer das c hat, müsste ja ein a sein
}
printf("%s", buffer);
return 0;
}
Zuletzt bearbeitet: