<分区>
我对二进制文件有点困惑,我知道数据以 block 的形式存储在二进制文件中,并且根据我通过实验获得的知识,我发现如果我们有一个包含这样的成员变量的结构:
struct student{
int Roll_No;
char Name[10];
}
然后用内容更新变量,并将其保存在二进制文件中二进制文件有 14 个字节,10 个字节的 char 和 4 个 int,所以如果我们在 hexeditor 中分析文件,文件有 4 个字节保留对于 Roll_no 和 10 个字节为 Name 保留,其中填充的内容被填充,其他可以看作是文件中的点,我的意思是如果我们像上面那样创建一个带有 struct/class 的程序,并且在将内容保存到文件之后,文件的大小与我们创建的结构相同,我的意思是 4 个 int 和 10 个 char,所以据我所知,如果我创建了一个新的图像格式,例如。 (Dot).MyIMG,从我的程序中,它的结构/类是这样的
struct MyIMG{
char Header[5];
int width, height;
int Pixels[124000];
}
然后我的程序将创建一个大小为 49613 字节或 49 千兆字节的新文件(这是标题的 5,+(加上)8 的 int 高度和宽度,+(加上)4×124000 的 int 像素),无论是像素是 4、8、100 或任何它将写入整个像素数组的值,如果为空,那么为什么这种效果在任何大型软件(如 MSpaint、Adobe photoshop)上都不能相同,它们是做什么的,这使得它们的程序写入文件大小取决于存储的像素而不是空白数组...
编辑:我现在已经编辑了我的问题,并清楚地定义了我的问题,请帮助我,在此先感谢!!