iphone - memcpy 导致 'exc bad access'

标签 iphone objective-c c arrays memcpy

我正在尝试遍历一个数组并复制数据,但是在 1023 次循环之后,我收到了一条 exc bad access 消息,我觉得这可能与我的内存有关. 在我的循环中,我需要将数据附加到我的 totalValues 数组,所以我这样做了:

memcpy(totalValues + totalCopied, tempBuffer, 600 * sizeof(float));

这是在一个循环内完成的,totalCopied 跟踪有多少数据被附加到 totalValues 以便我知道当循环再次遇到 memcpy 时从哪里写入.我不确定为什么会收到“exc bad access”错误,但我的理论是内存不连续,因此 totalValues + totalCopied 行可能会导致问题。我不确定在这种情况下是否会抛出错误,或者内存是否会被覆盖。有趣的是,它总是发生在 1023 次循环之后。如果我删除“memcpy”行,程序会毫无问题地循环执行。知道是什么原因造成的吗?

编辑 - 原因是内存分配是为另一个文件硬编码的。通常情况下,在分配内存之前,我并不知道文件的长度,那么如何确保在运行时分配足够的内存呢?

最佳答案

听起来您写的字节数超过了 totalValues 可以包含的字节数。向我们展示您是如何分配它的。

顺便说一下,我们通常在 iOS 上使用 NSData 对象来做这种事情。

关于iphone - memcpy 导致 'exc bad access',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7623602/

相关文章:

ios - 交换时淡化 UIBarButtonItem

C - 如何通过直接输入一串数字和字符(符号)来创建计算器?

ios - Xcode 5.0.1 iOS 7.0.3 模拟器未启动

ios - 如何让我的 AFNetworking "responseObject"收到我可以解析的 NSDictionary?

ios - 需要在YouTube视频共享列表中显示我的iPhone应用程序

ios - 使用_框架!仅适用于某些 pod 或 swift pod

字符指针 : Creating dynamic string array, 赋值并传递给其他函数和其他小家伙 - C

objective-c - objective-c 浮点值

iphone - 在模态视图中收到内存警告 - 父 View Controller 的对象被释放。如何预防?

iphone - 在 iOS 中使移动动画永久化