Working with this code:

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

int j_btree_create (int fn_initial_nodes);

typedef struct {
    int depth;
    int value;
    void *item;
    void *left_pointer;
    void *right_pointer;
} j_btree_node_int;

typedef struct {
    int nodes;
    int available_nodes;
    int btree_extension;
} j_btree_descriptor_int;

int j_btree_create (int fn_initial_nodes) {
    int *free_btree_node;
    int loop_counter;
    j_btree_descriptor_int *btree_start;

    btree_start = (j_btree_descriptor_int *) malloc (((sizeof(j_btree_node_int) + sizeof(free_btree_node)) * fn_initial_nodes) + sizeof(j_btree_descriptor_int));

    (*btree_start).nodes = fn_initial_nodes;
    (*btree_start).available_nodes = fn_initial_nodes;
    (*btree_start).extension = NULL; */
    for (loop_counter = 0; loop_counter < fn_initial_nodes; loop_counter++) {
        printf ("loop_test: %d", loop_counter);
    }
}

```

I want a pointer that points to the location after the binary tree descriptor (basically a struct at btree\_start)

Can I do this with by 

```
free_btree_node = btree_start + sizeof(j_btree_descriptor_int);

```

Or is this liable to go completely wrong? If so how should I do this? I will be doing something similar to initially populate the table of unused binary tree nodes.