Re: binære træer på FreeBSD

From: Claus Guttesen (none@cguttesen--yahoo.dk.lh.bsd-dk.dk)
Date: Fri 18 Mar 2005 - 12:47:19 CET


Date: Fri, 18 Mar 2005 12:47:19 +0100 (CET)
From: Claus Guttesen <none@cguttesen--yahoo.dk.lh.bsd-dk.dk>
Subject: Re: binære træer på FreeBSD
To: devel@bsd-dk.dk

Hej.

Fandt et eksempel på brug af rb-træer på
http://osmirrors.cerias.purdue.edu/pub/OpenBSD/src/usr.bin/du/du.c.

Jeg har ud fra programmet lavet dette simple program:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/tree.h>

struct blb_entry_stat {
   int active_sessions;
   int expired_sessions;
};

struct blb_entry {
   int count;
   char *sessionid;
};

RB_HEAD(blb_tree, blb_entry) head =
RB_INITIALIZER(&head);

int main(int argc, char *argv[]) {
   struct blb_entry *bentry;
   bentry = malloc(sizeof(bentry));
   if (bentry == NULL) {
      fprintf(stderr, "Unable to allocate memory\n");
      exit (8);
   }
   bentry->count = 1;

   printf("Initialisérer blb_entry!\n");

   printf("Indsætter node i blb_entry!\n");
   RB_INSERT(blb_tree, &head, bentry);

   return (0);
}

Men når jeg oversætter programmet fejler den med:

odin~/devel/c/blb%>cc -O2 -Wall -o blb blb.c
blb.c: In function `main':
blb.c:41: warning: implicit declaration of function
`blb_tree_RB_INSERT'
/var/tmp//ccbQX2DF.o(.text+0x43): In function `main':
: undefined reference to `blb_tree_RB_INSERT'

Hvad er det som jeg gør galt?

Hilsen
Claus



This archive was generated by hypermail 2b30 : Wed 15 Nov 2006 - 18:25:13 CET