问题标签 [free]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - free() 调用适用于模拟器,让 iPad 生气。iPad粉碎
我的应用程序内存不足。为了解决这个问题,我释放了两个非常大的数组,这些数组用于将帧缓冲区写入图像的函数中。该方法如下所示:
注意最后调用 free(buffer) 和 free(buffer2) 的两个?这些在 iPad 模拟器上运行良好,消除了内存问题,让我可以肆无忌惮地生成。但是,他们立即杀死了 iPad。就像,它第一次执行它。如果我删除 free() 调用它运行良好,只是在一两分钟后耗尽内存。那么为什么 free() 调用会导致设备崩溃?
注意 - 明确地使设备崩溃的不是对 free() 的调用,它稍后会崩溃。但这似乎是根本原因/..
编辑 - 有人问它到底在哪里崩溃。此流程继续将图像返回给另一个对象,该对象将其写入文件。当调用 'UIImageJPEGRepresentation' 方法时,它会生成一个 EXT_BAD_ACCESS 消息。我认为这是因为我传递给它以写入文件的 UIImage 已损坏、为空或其他。但这只有在我释放这两个缓冲区时才会发生。
我会理解内存是否与 UIIMage 有某种关联,但实际上不应该如此,尤其是在模拟器上运行时。我想知道这是否取决于 iPad 如何处理“免费”电话......
c - 在 C 中每次错误检查后如何避免长链的免费(或删除)?
假设我非常防御性地编写代码,并且总是检查我调用的所有函数的返回类型。
所以我喜欢:
注意free()
事情失控的速度有多快。如果某些功能失败,我必须先释放每个分配。代码很快变得丑陋,我所做的就是复制粘贴所有内容。我成为了一名复制/粘贴程序员,更糟糕的是,如果有人在两者之间添加了一条语句,他必须修改下面的所有代码来调用free()
他的添加。
有经验的 C 程序员如何解决这个问题?我什么都想不通。
谢谢,博达赛多。
c - 在 C 中释放可变大小的结构
我正在使用可变大小的 C 结构,如下所示:
最后一个 free() 会释放所有 malloc 的内容,还是只释放 sizeof(mystruct)?
objective-c - 关于 malloc()ed 数组的命运
我关于 Stackoverflow 的第一个问题。
让我从一些代码开始。这有点重复,所以我将剪掉我为不同阵列重复的部分(请随意询问其他部分)。但是,请忽略代码而不是回答底部的问题。首先:提前感谢回答者。第二:数据的释放。
(我稍后会谈到这个问题)。现在对于我 malloc() 数组的位置。
最后,调用一切的位(这是一个单独的类。)
我在这里所做的是将 PDB 文件中的分子加载到内存中,并将其显示在 OpenGL 视图窗口中。第二次加载一个分子(它将在loadPDB:
上面运行)时,我得到了大三角综合症和相关影响......我会在我的分子上看到大三角形。
但是,每次加载新分子时,我都会释放并重新分配我的 PDBHelper 和 ES1Renderer。因此我想知道:
1. 我声明为类范围变量的 helixVertices、helixIndices 和 helixColors 是否在这个实例中实际被重用。它们指向相同的对象吗?
2. 我应该在释放后将所有变量设置为 NULL 吗?无论如何,我打算这样做,通过获得一个段错误来发现任何错误,但还没有来得及合并它。3. 我对 malloc() 一个类变量是否正确?有没有更好的方法来实现这一目标?否则,我没有其他已知方式将此信息提供给渲染器。
c - 在 free() 之后将指针设置为 NULL 总是一个好习惯吗?
可能重复:
释放后将变量设置为 NULL …
我正在学习良好的 C 编程实践,我的朋友告诉我在 free() 之后总是将指针设置为 NULL(或调用特定的释放函数)。
例如:
或者
为什么这是一个好习惯?
更新:阅读答案后,对我来说这似乎是一种糟糕的做法!我隐藏了可能的 double-free() 错误。这怎么可能是一个好习惯?我很震惊。
谢谢,博达赛多。
c - 这是C中的双重免费吗?
通常,如果指针被释放两次,则它是两次释放。例如,
上面的代码被认为是双重免费的。以下是否也被视为双重免费?
谢谢你。
c - 如何检查 char* 是否指向 C 中的字符串文字
我有一个结构
我想正确释放。
我有以下功能来做到这一点:
问题是当我尝试释放使用字符串文字创建的请求时,我从编译器收到“free(): invalid pointer”/segfault 错误:
因为我想在不同的地方创建请求结构,一次使用文字(在客户端)和一次使用我从套接字读取的 *chars(在服务器端)我想知道是否有一个函数来确保我不要试图释放文字,同时仍然允许我释放我使用 malloc 创建的消息。
c++ - 如何在win32上用VC编译文字转语音节语音库
我需要将文本转语音嵌入到我的应用程序中,而不是机器人
我发现关于节日库的接缝很好唯一的问题是在阅读文档后
我不确定它是否在 Windows 上工作?
有人设法在没有 sygwin 的情况下在 Windows 上编译 lib
c - 使用“char”的布尔数组
我创建了一个对象,它实际上表示存储在 char 中的 8 个布尔值数组。我做了更多关于按位运算符和在 C 中创建自己的对象的知识。所以我有两个问题:
- 我可以确定以下代码是否始终有效吗?
- 这是一个很好的实现来制作一个不会在 C 中丢失的对象,除非你自己释放它。
编码:
我更像是一个 Objective-C 的人,但我真的想更多地学习 C。任何人都可以要求更多我可以提高自己的“家庭作业”吗?
谢谢,ief2
c - 为什么免费声明中没有提供尺寸
可能重复:
C 编程:free 如何知道要释放多少?
大家好,
当我们定义自由(指针)时,操作系统将如何知道我必须释放多少大小。我的意思是我们不提供任何 size ,只提供指向 free 语句的指针。内部如何处理大小?
谢谢,尼尔