dynamische speichervergrösserung
-
guten morgen
eine frage. Und zwar ist es so wie es in dem kleinen codebeispiel möglich ein beliebiges array ( das programm verwendet 2) über die selbe funktion zu erweitern sprich muss ich das array an die unterfunktion by call by vale übergeben oder kann ich mir das generell sparen.
speichervergrössern(output,2);
//
//
speichervergrössern(input,128);int Speichervergrössern(char array,int wieviel);
{// neuen speicher abhängig von bedarf anfordern
array = (char )realloc(array,wievielsizeof(char));
fehler();hoffe es ist halbwegs verständlich ws ich meine
-
Moin,
das geht mit nem Zeiger, oder einem Zeiger auf diesen, siehe er unten:char* my_resize_a ( char* s, unsigned hau_matsch ) { char* t = realloc ( s, hau_matsch ); if ( t == NULL ) return s; return t; } int my_resize_b ( char** s, unsigned hau_matsch ) { char* t; if ( s == 0 ) return 0; t = realloc ( *s, hau_matsch ); if ( t == NULL ) return 1; *s = t; return 0; } int main() { char* s = NULL; s = my_resize_a ( s, 16 ); if (s) strcpy ( s, "Hi " ); else return 0; if ( 0 == my_resize_b ( &s, 64 )) strcat ( s, "Bruder!" ); puts(s); free(s); return 0; }
-
ok dazu ne dumme frage
wie bekomm ich aus ner charfunktion ne int zurück sprich 2 return werte oder ka wie eben
int main()
.
.
.
.
char* xxx=yyy(beliebiger string)printf ("%s\n", xxx)
char* yyy(beliebige bla bla)
.
.
. und hier zähl ich etwas mit wie bekomm ich das in meine mainfunktion zurück um sagen zukönnen so oft wurde das gemacht
return zzzwenn wer helfen könnte wär toll
lfg alex
-
Hi,
brauchst du einen Zähler:int main() { char* xxx=yyy(beliebiger_string); char* yy(beliebige_bla_bla); int ZAEHLER_FUER_BELIEBIGES_BLAAAAH = 0; printf ("%s\n", xxx); // und hier zähl ich etwas mit wie bekomm ich das in meine mainfunktion zurück um sagen zukönnen so oft wurde das gemacht ZAEHLER_FUER_BELIEBIGES_BLAAAAH++; // Einmal blah gemacht. printf ("%s\n", yy); // und hier zähl ich etwas mit wie bekomm ich das in meine mainfunktion zurück um sagen zukönnen so oft wurde das gemacht ZAEHLER_FUER_BELIEBIGES_BLAAAAH++;// Nochmal blah gemacht. printf ("%d\n", ZAEHLER_FUER_BELIEBIGES_BLAAAAH); // Anzeige wie oft blah gemacht return zzz; }
Gruß,
B.B.
-
int main() . . . . char* xxx=yyy(beliebiger string) printf ("%s\n", xxx) return(0); char* yyy(beliebige bla bla) . . . und hier zähl ich etwas mit wie bekomm ich das in meine mainfunktion zurück um sagen zukönnen so oft wurde das gemacht return zzz
jo klar das mitn counter ist mir schon klar aber wie bekomm ich ihn aus meiner
unterfunktion ins main zurück wenn ich ne *char funktion habe und nein int wert ins main für die auswerten übergeben willschreib ich mir nen pointer in der unterfunktion bekomm ich
initialization makes pointer from integer without a cast
oder müste ich schon beim funktionsaufruf den int ausn main mitnehmen oder stehts eh schon da und ich steh am schlauch
-
Hallo,
char* yyy(int* zaehler); int main() { int ZAEHLER_FUER_BELIEBIGES_BLAAAAH = 0; char* xxx = yyy(&ZAEHLER_FUER_BELIEBIGES_BLAAAAH); /* ZAEHLER_FUER_BELIEBIGES_BLAAAAH ist jetzt 1 */ } char* yyy(int* zaehler) { ++*zaehler; }
MfG,
Probe-Nutzer