Code:
#include <stdio.h>
#include "memory.h"
#define POOL_SIZE 10
// pool of memory
struct record pool[POOL_SIZE];
struct record * top=pool; // pool is constant; a pointer to the stack top.
void init_pool() // Initialize the pool
{
int i;
struct record *r=pool;
struct record *s;
pool[POOL_SIZE-1].next=NULL;
for(i=1;i<POOL_SIZE;i++) {
s=r++;
s->next=r;
}
}
// Gets a node from the pool. Returns NULL if pool is empty. (A BETTER DESIGN)
struct record * new_node()
{
struct record *r=pool;
pool=(pool *)malloc(sizeof(pool[POOL_SIZE]));
}
// Push a node to the pool.
void free_node(struct record *r)
{
r->next=top;
top=r;
}
when i try to compile this, i meet up with those errors.
memory.c: In function ‘new_node’:
memory.c:29:15: error: expected expression before ‘)’ token
pool=(pool *)malloc(sizeof (pool[POOL_SIZE]));
^
how could i fix this error?
Comment