Sei sulla pagina 1di 1

#include <stdio.

h>
#include <stdlib.h>
#include <math.h>
//da vedere dalle slide o da corcione
struct punto
{
flaot x,y;
};

item creaItem(float a, float b)


{
item punto; //è un puntatore mascherato

punto = malloc(sizeof(*punto)); //deferenzia il puntatore e vedi quanto spazio


serve a questa struttura
//punto = malloc(2*sizeof(float)); va bene lo stesso ma fare *2 significa
allocare manualmente memoria (Es se all'oggetto punto si aggiungono altri 3000
proprietà si devono scrivere a mano)
if(punto == NULL)
{
printf("Allocazione dinamica di punto in item.c fallita\n");
//exit(-1); Non va bene uscire direttamente dal programma ( es non
riusciamo ad allocare il 100000 punto e uscendo direttamente perdiamo tutti i
precedenti 99999 gia allocati)
return NULLITEM; //facendo cosi la funzione chiamante chiama questa
funzione in loop finche non alloca
}
punto->x = a;
punto->y = b;
}

float ordinata(item p)
{
return p->y;
}

float ascissa(item p)
{
return p->x;
}

item input_item(void)
{
float x,y;
printf("Ascissa: ");
scanf("%f",&x);
printf("Ordinata: ");
scanf("%f",&y);

return creaItem(x,y);
}

int compare(item p1, item p2)


{
return p1->x == p2->x && p1->y == p2->y; //nelle slide di tucci sta fatto
p1==p2 direttamente
}

Potrebbero piacerti anche