我正在分析我编写的游戏的代码,我想知道以下代码段每次执行时如何有可能导致堆增加4kb(我正在使用Xcode的快照分析进行概要分析):
u8 WorldManager::versionOfMap(FILE *file)
{
char magic[4];
u8 version;
fread(magic, 4, 1, file); <-- this is the line
fread(&version,1,1,file);
fseek(file, 0, SEEK_SET);
return version;
}
Run Code Online (Sandbox Code Playgroud)
根据分析器,突出显示的行分配4.00Kb的内存,malloc每次调用该函数时,内存永不释放.这个问题似乎发生fread在代码周围的其他调用,但这是最令人讨厌的.
我有什么微不足道的错过吗?这是我不应该关心的内部事物吗?
就像一个注释:我在iPhone上进行分析,它被编译为release(-O2).