The field address in a record buffer will also vary if the field is located in the variable portion of a record. Call ctdbGetFieldAddress() to retrieve the field address in the record buffer. Fields in the fixed portion of a record buffer will always return the same address.
ctdbGetFieldAddress() takes as parameters the record handle, the field number and return a pointer to the address of the field in the record buffer. ctdbGetFieldAddress() returns NULL if an error occurs and the field address cannot be retrieved.