我正在尝试循环遍历数组并复制数据,但是在1023循环之后,我收到一条exc bad access
消息,我觉得它可能与我的记忆有关。
在我的循环中,我需要将数据附加到我的totalValues
数组,所以我这样做了:
memcpy(totalValues + totalCopied, tempBuffer, 600 * sizeof(float));
这是在一个循环中完成的,totalCopied
跟踪已将多少数据附加到totalValues
,以便我知道循环再次点击memcpy时的写入位置。我不确定为什么会出现“错误访问”错误,但我的理论是内存不连续,因此totalValues + totalCopied
行可能会造成麻烦。我不确定在这种情况下是否会抛出错误,或者无论如何都会覆盖内存。有趣的是,它总是发生在1023循环之后。如果我删除'memcpy'行,程序循环没有任何问题。可能导致这种情况的任何想法?
编辑 - 原因是内存分配是硬编码为另一个文件。通常,在内存分配之前我不知道文件的长度,那么如何确保在运行时分配足够的内存?
答案 0 :(得分:2)
听起来你写的字节多于totalValues可以包含的字节数。告诉我们你是如何分配的。
顺便说一句,我们通常在iOS上使用NSData对象来做这种事情。