dynamische Strukturfelder
-
folgendes problem, hoffe koennt helfen:
ist es moeglich in ANSI-C fuer eine Struktur die Felder dieser dynamisch zu erzeugen?? Also:
ich hab ne struktur aber die felder dieser stehen noch nicht fest!?!?vielen dank.
-
Nee, in ANSI-C geht das nicht so ohne weiteres.
Ich hab sowas mal in C++ gemacht, brauch bloß nen bischen overhead.
-
Du kannst die Struktur dynamisch machen, indem du einen zeiger auf die Struktur, zeigen lässt. Such mit google: "Verkettete Listen"
-----
FREAK
-
Original erstellt von <FREAK>:
**Du kannst die Struktur dynamisch machen, indem du einen zeiger auf die Struktur, zeigen lässt. Such mit google: "Verkettete Listen"-----
FREAK**ich dachte er wollte den _inhalt_ der Struktur dyn anpassen. Also bsp.sweise nen Struktur in der mal nen char, mal nen int und nen char drin ist. usw.
-
Geht sowas? Würd mich mal intessieren.
-
Doch scheint zu gehen:
#include <stdio.h> #include <string.h> #include <stdlib.h> int main() { struct test{ char *zeichen; int *zahlen; }acc; int i; acc.zahlen=(int *)malloc(sizeof(int)); acc.zeichen=(char *)malloc(sizeof(char)); acc.zahlen=(int *)realloc(acc.zahlen,10*sizeof(int)); acc.zeichen=(char *)realloc(acc.zeichen,100*sizeof(char)); strcpy(acc.zeichen,"Ich wurde in ein dynamisch erzeugtes Array kopiert"); for(i=0;i<10;i++) { acc.zahlen[i]=i; printf("%4i",acc.zahlen[i]); } printf("\n%s\n",acc.zeichen); return EXIT_SUCCESS; }
-
sehr witzig, die felder stehen doch noch nicht fest.
soweit ich das beurteilen kann geht das mit strukturen nicht.
die Lösung für C wären wie schon erwähnt, verkettete Listen oder dynamische arrays mit void pointern.