memcpy导致’exc bad access’

我试图循环一个数组并复制数据,但在1023循环后,我得到一个exc bad access消息抛出,我感觉它可能与我的记忆有关。 在我的循环中,我需要将数据附加到我的totalValues数组,所以我这样做:

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

这是在一个循环中完成的,并且totalCopied会跟踪已经将多少数据附加到totalValues以便我知道在循环再次点击memcpy时从哪里写入。 我不确定为什么会出现“错误访问”错误,但我的理论是内存不连续,因此, totalValues + totalCopied行可能会造成麻烦。 我不确定在这种情况下是否会抛出错误,或者无论如何都会覆盖内存。 有趣的是,它总是发生在1023循环之后。 如果我删除’memcpy’行,程序循环没有任何问题。 可能导致这种情况的任何想法?

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

听起来你写的字节数多于totalValues可以包含的字节数。 告诉我们你是如何分配它的。

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