Tilbage til slide -- Tastaturgenvej: 'u'  forrige -- Tastaturgenvej: 'p'  næste -- Tastaturgenvej: 'n'          structures/polygon.c - En struct med en pointer til et array af hjørne-punkter i en polygon.Lektion 12 - slide 22 : 36
Program 3

#include <stdio.h>
#include <stdlib.h>

struct point {
  double x, y;
};

typedef struct point point;

struct polygon {
  int rank;
  point *points;
};

typedef struct polygon polygon;

polygon make_polygon(int rank, point corners[]){
  int i;
  struct polygon result;

  result.rank = rank;
  result.points = (point*)malloc(rank * sizeof(struct point));
  // Check if malloc returns NULL - not included here...
  for(i = 0; i < rank; i++)
    result.points[i] = corners[i];
  return result;
}

int main(void) {
  polygon a_pentagon;
  point five_points[] = { {0.0, 0.0}, {3.0, 7.0}, {10.0, 5.0}, {10.0, -5.0}, {2.0, -16.0} };  

  a_pentagon = make_polygon(5, five_points);

  // ...

  // Free memory allocated for a_pentagon.points ...

  printf("Size of polygon: %d bytes\n", sizeof(polygon));
  printf("Size of int: %d bytes\n", sizeof(int));
  printf("Size of point*: %d bytes\n", sizeof(point * ));

  return 0;
}