memcpy causant ‘exc mauvais access’

J’essaie de parcourir une masortingce et de copier des données, mais après 1023 boucles, un message indiquant un exc bad access est envoyé et j’ai l’impression que cela a peut-être un lien avec ma mémoire. Dans ma boucle, j’ai besoin d’append des données à mon tableau totalValues , alors j’ai fait ceci:

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

Ceci est effectué dans une boucle et totalCopied nombre de données ajoutées à totalValues afin que je sache où écrire lorsque la boucle frappe à nouveau. Je ne suis pas sûr de savoir pourquoi l’erreur “exc bad access” est générée, mais ma théorie est que la mémoire n’est pas contiguë. Par conséquent, la ligne totalValues + totalCopied pourrait poser problème. Je ne sais pas si une erreur serait générée dans ce cas, ou si la mémoire serait simplement écrasée de toute façon. La chose intéressante est que cela se produit toujours après 1023 boucles. Si je supprime la ligne ‘memcpy’, le programme passe en revue sans problème. Des idées ce qui pourrait être la cause?

EDIT – La cause était que l’allocation de mémoire était codée en dur pour un autre fichier. Normalement, je ne saurai pas la longueur du fichier avant l’allocation de mémoire. Comment puis-je m’assurer que suffisamment de mémoire est allouée à l’exécution?

On dirait que vous écrivez plus d’octets que totalValues ​​ne peut en contenir. Montrez-nous comment vous l’allouez.

Incidemment, nous faisons habituellement ce genre de chose avec les objects NSData sur iOS.