dynamische array von sturkturen?
-
hi,
ich weiss, dass man dynamische arrays erzeugen kann, aber ich habe gerade versucht, dynamische arrays zu erzeugen, deren elemente strukturen sind. es hat nicht geklappt.
weiss jemand bescheid darüber?
danke
-
beim kompelieren kommt die warnung:
a@pc148:~/dynArrayOfstruktur> gcc -o -g -Wall dynArSt dynArSt.c
dynArSt.c: In functionmain': dynArSt.c:17: warning: assignment from incompatible pointer type dynArSt.c:27: request for member
seite' in something not a structure or union
dynArSt.c:32: request for member `seite' in something not a structure or unionder programmcode lautet:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>struct index {
int seite;
char titel[30];
};
int main()
{
int *value;
int size;
int i=0;printf("Wie viele Werte benötigen Sie : ");
scanf("%d",&size);
value=(struct index )malloc(sizesizeof(struct index));
if( NULL == value )
{
printf("Fehler bei malloc....\n");
exit(0);
}while( i<size )
{
printf("Wert für value[%d] eingeben : ",i);
scanf("%d",&value[i].seite);
i++;
}
printf("Hier Ihre Werte:\n");
for(i=0; i<size; i++)
printf("value[%d] = %d\n",i,value[i].seite);
free(value);
return 0;
}danke
(tags konnte ich nicht verwenden, mein browser ist zu weise )
-
typedef struct { int seite; char titel[30]; } IndexStruct; int main() { IndexStruct *value; int size; int i=0; printf("Wie viele Werte benötigen Sie : "); scanf("%d",&size); value=(IndexStruct *)malloc(size*sizeof(IndexStruct));
Ich habe deine Struktur in eine typedef definition einer Struktur umgewandelt.
der Fehler dürfte dein int *value; gewesen sein du willst ja schließlich ein
Feld von structuren haben und nicht ein Feld von Integer.
Und bei einem Element eines Integerfeldes kannst du nicht auf ein Unterelement Seite zugreifen.
Das Programm compiliert unf funktioniert bei mir (MS VC 6.0)
Übrigens kannst du durch schreiben von "[ c p p ]" beliebiger C-Code "[ / c p p ]" Tags auch ohne Buttons schreiben. Die beiden Begriffe in den Hochkommas sind ohne die Leerzeichen schreiben