问题标签 [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.

0 投票
3 回答
620 浏览

iphone - free() 调用适用于模拟器,让 iPad 生气。iPad粉碎

我的应用程序内存不足。为了解决这个问题,我释放了两个非常大的数组,这些数组用于将帧缓冲区写入图像的函数中。该方法如下所示:

注意最后调用 free(buffer) 和 free(buffer2) 的两个?这些在 iPad 模拟器上运行良好,消除了内存问题,让我可以肆无忌惮地生成。但是,他们立即杀死了 iPad。就像,它第一次执行它。如果我删除 free() 调用它运行良好,只是在一两分钟后耗尽内存。那么为什么 free() 调用会导致设备崩溃?

注意 - 明确地使设备崩溃的不是对 free() 的调用,它稍后会崩溃。但这似乎是根本原因/..

编辑 - 有人问它到底在哪里崩溃。此流程继续将图像返回给另一个对象,该对象将其写入文件。当调用 'UIImageJPEGRepresentation' 方法时,它会生成一个 EXT_BAD_ACCESS 消息。我认为这是因为我传递给它以写入文件的 UIImage 已损坏、为空或其他。但这只有在我释放这两个缓冲区时才会发生。

我会理解内存是否与 UIIMage 有某种关联,但实际上不应该如此,尤其是在模拟器上运行时。我想知道这是否取决于 iPad 如何处理“免费”电话......

0 投票
6 回答
1570 浏览

c - 在 C 中每次错误检查后如何避免长链的免费(或删除)?

假设我非常防御性地编写代码,并且总是检查我调用的所有函数的返回类型。

所以我喜欢:

注意free()事情失控的速度有多快。如果某些功能失败,我必须先释放每个分配。代码很快变得丑陋,我所做的就是复制粘贴所有内容。我成为了一名复制/粘贴程序员,更糟糕的是,如果有人在两者之间添加了一条语句,他必须修改下面的所有代码来调用free()他的添加。

有经验的 C 程序员如何解决这个问题?我什么都想不通。

谢谢,博达赛多。

0 投票
2 回答
400 浏览

c - 在 C 中释放可变大小的结构

我正在使用可变大小的 C 结构,如下所示:

最后一个 free() 会释放所有 malloc 的内容,还是只释放 sizeof(mystruct)?

0 投票
1 回答
156 浏览

objective-c - 关于 malloc()ed 数组的命运

我关于 Stackoverflow 的第一个问题。

让我从一些代码开始。这有点重复,所以我将剪掉我为不同阵列重复的部分(请随意询问其他部分)。但是,请忽略代码而不是回答底部的问题。首先:提前感谢回答者。第二:数据的释放。

(我稍后会谈到这个问题)。现在对于我 malloc() 数组的位置。

最后,调用一切的位(这是一个单独的类。)

我在这里所做的是将 PDB 文件中的分子加载到内存中,并将其显示在 OpenGL 视图窗口中。第二次加载一个分子(它将在loadPDB:上面运行)时,我得到了大三角综合症和相关影响......我会在我的分子上看到大三角形。

但是,每次加载新分子时,我都会释放并重新分配我的 PDBHelper 和 ES1Renderer。因此我想知道:

1. 我声明为类范围变量的 helixVertices、helixIndices 和 helixColors 是否在这个实例中实际被重用。它们指向相同的对象吗?
2. 我应该在释放后将所有变量设置为 NULL 吗?无论如何,我打算这样做,通过获得一个段错误来发现任何错误,但还没有来得及合并它。3. 我对 malloc() 一个类变量是否正确?有没有更好的方法来实现这一目标?否则,我没有其他已知方式将此信息提供给渲染器。

0 投票
4 回答
2453 浏览

c - 在 free() 之后将指针设置为 NULL 总是一个好习惯吗?

可能重复:
释放后将变量设置为 NULL …

我正在学习良好的 C 编程实践,我的朋友告诉我在 free() 之后总是将指针设置为 NULL(或调用特定的释放函数)。

例如:

或者

为什么这是一个好习惯?

更新:阅读答案后,对我来说这似乎是一种糟糕的做法!我隐藏了可能的 double-free() 错误。这怎么可能是一个好习惯?我很震惊。

谢谢,博达赛多。

0 投票
5 回答
2851 浏览

c - 这是C中的双重免费吗?

通常,如果指针被释放两次,则它是两次释放。例如,

上面的代码被认为是双重免费的。以下是否也被视为双重免费?

谢谢你。

0 投票
6 回答
3097 浏览

c - 如何检查 char* 是否指向 C 中的字符串文字

我有一个结构

我想正确释放。

我有以下功能来做到这一点:

问题是当我尝试释放使用字符串文字创建的请求时,我从编译器收到“free(): invalid pointer”/segfault 错误:

因为我想在不同的地方创建请求结构,一次使用文字(在客户端)和一次使用我从套接字读取的 *chars(在服务器端)我想知道是否有一个函数来确保我不要试图释放文字,同时仍然允许我释放我使用 malloc 创建的消息。

0 投票
1 回答
929 浏览

c++ - 如何在win32上用VC编译文字转语音节语音库

我需要将文本转语音嵌入到我的应用程序中,而不是机器人
我发现关于节日库的接缝很好唯一的问题是在阅读文档后
我不确定它是否在 Windows 上工作?
有人设法在没有 sygwin 的情况下在 Windows 上编译 lib

0 投票
5 回答
3124 浏览

c - 使用“char”的布尔数组

我创建了一个对象,它实际上表示存储在 char 中的 8 个布尔值数组。我做了更多关于按位运算符和在 C 中创建自己的对象的知识。所以我有两个问题:

  1. 我可以确定以下代码是否始终有效吗?
  2. 这是一个很好的实现来制作一个不会在 C 中丢失的对象,除非你自己释放它。

编码:


我更像是一个 Objective-C 的人,但我真的想更多地学习 C。任何人都可以要求更多我可以提高自己的“家庭作业”吗?

谢谢,ief2

0 投票
3 回答
336 浏览

c - 为什么免费声明中没有提供尺寸

可能重复:
C 编程:free 如何知道要释放多少?

大家好,

当我们定义自由(指针)时,操作系统将如何知道我必须释放多少大小。我的意思是我们不提供任何 size ,只提供指向 free 语句的指针。内部如何处理大小?

谢谢,尼尔