[C] speicher allokieren
Einklappen
X
-
PHP-Code:if( *zeiger != NULL)
Code:*zeiger = (void*)("f");
Ansonsten, int oder void bei main? Kann man halten wie man will, oder?
Einen Kommentar schreiben:
-
Danke, habe es so gemacht:
Code:int allokiere(int laenge, void **zeiger) { *zeiger = (void *)malloc(laenge); if( zeiger != NULL) { printf("Allozierung war erfolgreich\n"); *zeiger = (void*)("f"); printf("%s\n", (char*)(*zeiger)); } else { printf("Aetsch, hier ging was schief\n"); } return 0; } int main() { void *Name; allokiere(1, &Name); printf("%s", Name); return 0; }
Ansonsten, int oder void bei main? Kann man halten wie man will, oder?
Einen Kommentar schreiben:
-
einer Meinung nach tut es das auch, oder?
um den inhalt von "Name" (übrigens - kleinschreiben) zu verändern, muss die funktionCode:void **zeiger
Code:strcpy(*zeiger, "foo");
die ausgabe dann wie gewohnt mitCode:printf("%s\n", (char*)name);
p.p.s. es heißt "int main()", nicht void.
Einen Kommentar schreiben:
-
[C] speicher allokieren
Hallo Gemeinde,
ich moechte eine Funktion aufrufen (aus main) die Speicher allokiert.
Wie ihr seht, hat diese Funktion zwei Parameter
1. int - Groesse des zu allokierenden Speichers
2. typenlosen pointer
In main() soll dann ein byte allokiert werden und mit einem charakter befuellt werden. Meiner Meinung nach tut es das auch, oder? ;-)
Die Ausgabe klappt zumindest soweit.
Wie kann ich denn den Wert des Pointers in main() nochmal ausgeben?!
Achso, der Code:
Code:#include <stdio.h> #include <stdlib.h> int allokiere(int laenge, void *zeiger) { zeiger = (void *)malloc(laenge); if( zeiger != NULL) { printf("Allozierung war erfolgreich\n"); char *zeiger = "f"; printf("%s\n", zeiger); } else { printf("Aetsch, hier ging was schief\n"); } return 0; } void main() { void *Name; allokiere(1, Name); getchar(); }
Zuletzt geändert von Peter_Panther; 05.07.2007, 13:30.Stichworte: -
Einen Kommentar schreiben: