gpt4 book ai didi

c++ - 释放静态内存?不,那不可能

转载 作者:IT王子 更新时间:2023-10-28 23:38:11 25 4
gpt4 key购买 nike

我一直在尝试将资源嵌入到我的 c++ 程序中。为了做到这一点,我将数据十六进制转储到一个简单的数组中,即

unsigned char image_png[] ={
0x0a, 0x0b, 0x0c, 0x0d, ...
};

其中一些资源在加载后未使用(即它们被转换为其他内容,然后原始数据只是大容量......尽管为了便于分发而使用少量大容量可能是值得的)。

我很好奇是否有办法将资源嵌入到程序中,这样我就不必担心二进制文件能够找到所有最重要的资源,然后在完成后释放它使用,以便运行时内存占用更少。

这可能吗?如果可能的话,尝试这样做是一件愚蠢的事情吗?例如,也许操作系统无论如何都会将整个程序镜像保存在内存中(我不确定它到底是如何工作的)。

编辑: 为了回答评论,我正在使用 Linux(Ubuntu 10.04),但如果有跨平台解决方案,我很想听听

最佳答案

正如 Tomaka17 所说,您真的不必担心它 - 如果您从不接触该资源,它就永远不会出错,也不会消耗物理内存。当您加载 DLL/so/whatever 时,它实际上只是将文件 映射 到内存中;尝试访问该文件会导致实际读取文件,逐段读取。

关于c++ - 释放静态内存?不,那不可能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3610909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com