我想写一个简单的TGA图像文件保护程序作为学习练习在C++中。我将我的代码放在一个示例TGA加载器上,该加载器为头部声明结构,然后使用fread()一次加载整个头部。当写入结构到一个文件太多的字节被写入
我的程序现在不能正常工作,好像有两个额外的字节被写入文件。我打印sizeof我的结构,它的两个字节太大(20而不是正确的18)。经过一些阅读后,我认为这个问题与数据对齐和填充有关(我不太了解结构如何存储)。
我的问题是什么这是一个很好的解决方案?我想我可以逐字节地写结构的组件,而不是使用fwrite()来立即写整个结构,这就是我现在要做的。我认为,如果它在加载标题时起作用,它在写入时也会起作用。我的假设是否不正确?