It is incorrect.

Because `data` is defined as:

``` c
   char * data = NULL;
```

The `sizeof(data)` will return `4` (the size of a pointer).

If you had this:

``` c
   char data[MAX_ZNODE_SIZE];
```

The result of `sizeof(data)` would have been `MAX_ZNODE_SIZE`.