Προς το περιεχόμενο

void* pointer σε C


jtsc21

Προτεινόμενες αναρτήσεις

Δημοσ.

Τσεκαρε και αυτο που ειναι μονο με 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;
}

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...