wie gibt man aus funktionen einen pointer zurückgeben
-
sagt eigentlich schon alles
-
mit
return
-
ein Zeiger ist auch nur eine Variable...
wenn du
char foo() { return 'c'; }
schreibst um einen char zu returnen, dann schreibst du auch
char* foo() { return "agugu"; }
um einen Zeiger zu returnenAber Achtung:
char* foo() { char buf[]="hallo Welt"; return buf; }
ist boese, weil buf beim return zerstoert wird un foo somit die adresse eines ungueltigen (weil bereits zerstoerten) char arrays zurueckgibt.
-
danke das ging schnell...
genau das zweite ist mein problem
ich hab ein int string als rückgabe wert und möchte den gerne in der (übergeordnet?) auslesen.
ich dachte mir nun man deklariert die erzeuger funktion als pointer, somit dürfte ja der rückgabe wert ein pointer sein.... nur wie macht man das oder geht das gar nicht ??danke
-
na mal sehen wie ich sowas lösen kann..
muss wohl ne neue fkt schreiben
grummel c ist wohl nicht c++, wie ich vermute...
-
Ja, C ist nicht C++
Das aendert an deinem Problem aber nix (ausser dass du es in C++ mit smart pointer loesen koenntest)void foo(char* buffer) { strcpy(buffer,"A Gu Gu"); }
so loest man es in C
der caller muss nur genug speicher bereitstellen...
-
Du must di variable zu einer globalen machen.
Allerdings kannst du sie auch als 'static' deklarieren. Dann wird die lokale Var. techn. gesehen zu einer Globalen, aber du hast 'nur' Zugriff wie auf normale lokale Variablen.mfg
-bg-
-
Du must di variable zu einer globalen machen.
Schon mal in einem Team gearbeitet ??? Also an deinen Programmen
möchte ich nichts verändern.....
Globale Variabeln sind für das genannte Problem keine Lösung!Allerdings kannst du sie auch als 'static' deklarieren
Für gewisse Probleme schaffen "static" sicher Hilfe.. aber sicher nicht
für das oben genannte!!!!
Das ist Bastlerei... keine Programmierung.Bitte Shades Lösung ..... aber sicher nicht static und schon gar nicht global...
-
Original erstellt von Solaris'dUKe:
aber sicher nicht static und schon gar nicht global...Jep!
static ist dann boese, wenn du mal Threads verwendest und global ist sowieso 'verboten'.