Zeiger eines Strings (char*) auf einen anderen Datenbereich zeigen lassen
-
Hi,
ich habe eine Frage theoretischer Natur, und zwar hatte ich ein Problem in dem ich einen string (char*) auf einen anderen Speicherbereich zeigen lassen wollte. Da der Zeiger aber als Paramter an eine Funktion übergeben wurde, hatte ich nicht mehr das Original des Zeigers sondern eine Kopie die auf den selben Speicherbereich zeigte.
Ich habe das Problem so gelöst://main.cpp Text::read(szFileName,&text); ... //Text.h static const bool read(const char* cFileName,char **text) { char *buffer=NULL; ... fread(buffer,1,length,file); ... *text=buffer; }Ich habe da eine Theorie wie des abläuft, doch ich bin mir nicht sicher und hätte gern eine Bestätigung.
-
Sry hab grad gemerkt das ich im falschen Forum bin, aber egal.
-
Horaz schrieb:
Ich habe da eine Theorie wie des abläuft, doch ich bin mir nicht sicher und hätte gern eine Bestätigung.
Wenn Du uns Deine Theorie nicht verrätst, wirst du auch keine Bestätigung derer bekommen können :p .
void foo( char **bar ) { *bar++; // der Zeiger auf einen Zeiger auf char wird dereferenziert // und somit der Zeiger auf char inkrementiert. } int main( ) { char str[ ] = "0123456789"; char *bar = str; putchar( *bar ); // '0' foo( &bar ); // Die Adresse des Zeigers bar übergeben. putchar( *bar ); // '1' }cheers, Swordfish
-
Thx ich muss des noch ein bisschen verdauen.
-
Gut bekomm's

cheers, Swordfish