A seguir temos alguns exemplos de fácil compreensão.
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct{ int id; char name[30]; } elemento; typedef struct node{ struct node *next; // forma correta // node *previous; // declaração errada elemento *dados; } node; typedef struct tag{ int key; int value; } tag; int main() { elemento *prod = (elemento *) malloc( sizeof( elemento )); prod->id = 123; strcpy( prod->name, "teste"); node *n = (node *) malloc( sizeof(node)); n->next = NULL; n->dados = prod; free( n->dados ); free( n ); tag *a = (tag *) malloc( sizeof( tag )); a->key = 12; a->value = 14; free( a ); struct tag *b = (struct tag *) malloc( sizeof( struct tag )); b->key = 120; b->value = 140; free( b ); struct point3d { int x; int y; int z; }; struct point3d *ptr = (struct point3d *) malloc( sizeof( struct point3d )); ptr->x = 10; ptr->y = 20; ptr->z = 30; free( ptr ); typedef struct point{ int x; int y; } point; point *q = (point *) malloc( sizeof( point )); q->x = 39; q->y = 67; free( q ); return 0; }
Link relacionado ao assunto:
RE: typedef struct vs struct
http://www.netalive.org/codersguild/posts/1753.shtml
Um comentário:
Tenho aprendido mais sobre C nas aulas de lógica que nas de C propriamente. Obrigado.
Postar um comentário