[linux] Re: OT: C-vraagje

J. mailing-lists op xs4all.nl
Vr Feb 11 19:27:20 CET 2005


On Fri, 11 Feb 2005, Hans Paijmans wrote:

> Ik heb al zes of zeven jaar niet meer in C geprogrammeerd, en
> nu is de start wat moeilijk. Kan iemand me een duwtje geven?

Meestal ben ik niet zo `vanachteren..' Maar om dat jij 't bent dan ;-)

> Het onderstaande programma (teruggebracht tot de essentie) doet
> het niet; ik schijn iets verkeerd te doen bij de typedef...
> De compiler beweert bij hoog en bij laag dat field 'posities'
> en 'legaal' ongedefinieerd zijn...
> 
> #include <stdio.h>
> 
> #define POSSIBLE 3
> #define POSITIES 7
<KNIP>
..... zie originele bericht...
</KNIP>

Persoonlijk zou ik 't vertalen naar iets als:

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

#define POSSIBLE 3
#define POSITIES 7

typedef char p_string[POSITIES];

typedef struct {
 char *posities;
 int legaal;
} node;

node *possible_nodes[POSSIBLE];

int main(void) {
 int x = 0;

 for(x = 0; x < POSSIBLE; x++)
  possible_nodes[x] = (node *)malloc(sizeof(node));

 possible_nodes[0]->posities = strdup("LLLL");
 possible_nodes[1]->posities = strdup("LLLR");
 possible_nodes[2]->posities = strdup("LLRR");

 for(x = 0; x < POSSIBLE; x++)
  possible_nodes[x]->legaal = 1;

 printf("hoppa!\n");
 for(x = 0;x < POSSIBLE; x++)
  printf("%s \n",possible_nodes[x]->posities);

 for(x = 0;x < POSSIBLE; x++)
  free(possible_nodes[x]->posities);

 return 0;
}

/*
// vanaf de command-line:
// ~: ./paai
// hoppa!
// LLLL 
// LLLR 
// LLRR 
*/




More information about the Linux mailing list