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.


Anmelden zum Antworten