Are you taking into account memory fragmentation? Or the internal malloc data structures? If your record were just 1 byte more, it could easily double the total actual memory usage.
Memory usage is discrete, not continuous. It's not as simple as calculating the safety factor on a rope.