Evgenios1 Δημοσ. 3 Νοεμβρίου 2009 Δημοσ. 3 Νοεμβρίου 2009 Τσεκαρε και αυτο που ειναι μονο με void* >#include <stdio.h> #include <stdlib.h> #define D(name,type) ((type*)name) #define NoD(name,type) (*(D(name,type))) #define pointer void* struct Obj { int a,b,c; }; typedef struct Obj Obj; struct Node { Obj data; pointer next; }; typedef struct Node Node; pointer CreateNode(); pointer CreateList(int size); void main() { pointer p = CreateList(10); while(D(p,Node)->next!=NULL) { p = D(p,Node)->next; printf("Node %d,%d,%d\n",D(p,Node)->data.a,D(p,Node)->data.b,D(p,Node)->data.c); } getchar(); } pointer CreateList(int elements) { int count=0; pointer p =CreateNode(); pointer first = CreateNode(); D(first,Node)->next=p; while(elements>count) { D(p,Node)->next=CreateNode(); p = D(p,Node)->next; count++; }; D(p,Node)->next=NULL; return first; } pointer CreateNode() { Node *p =(Node*) malloc(sizeof(Node)); p->data.a = rand(); p->data.b = rand(); p->data.c = rand(); return (pointer)p; }
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.