Hé, les gars, je commence juste à envelopper ma tête autour de l'objectif C et je fais un petit projet sur Iphone. Et je viens de rencontrer un problème étrange. J'ai dû faire face à des images dans mon programme donc j'ai beaucoup de variables locales déclarées comme temp [largeur] [hauteur]. Si je n'utilise pas NSThread pour effectuer le traitement d'image, tout fonctionne correctement. Cependant, si j'utilise NSThread, il continuera à me donner EXC_BAD_ACCESS à chaque fois que j'essaie d'accéder à un tableau à deux dimensions déclaré comme temp [widht] [height]. Je dois donc allouer de la mémoire à partir de tas pour avoir un tableau à deux dimensions. Cela résoudra le problème mais je ne comprends toujours pas. Ma première pensée serait d'empiler sur le flux, mais cela a bien fonctionné avec un fil. Je ne comprends pas.Fil et tableau bidimensionnel dans l'objectif C?
Répondre
Il se peut que la méthode à laquelle le tableau est local se termine avant que le thread ne soit terminé avec le tableau, ainsi votre tableau est hors de portée et la mémoire occupée est utilisée pour autre chose. Mais votre thread ne le sait pas et accède à la mémoire malgré tout.
Y at-il de toute façon faire face à ce genre de problème? Je ne suis pas sur le multithread ... – user302581
le multithreading est très compliqué, et il y a beaucoup de problèmes à traiter (conditions de course, blocage, etc.) - vous pourriez vouloir lire sur ceux-ci. Pour ce problème spécifique, vous devez allouer des ressources partagées sur le tas ou, de préférence, utiliser des objets Objective-C tels que NSArray (qui sont alloués sur le tas de toute façon). – shosti
Merci les gens! J'ai trouvé le problème. C'était pile sur le flux. J'ai créé un tableau en 1-D et j'ai essayé d'y accéder mais je ne l'ai toujours pas fait. Et puis je l'ai fait plus petit et ça a marché. Je pense que soit définir la taille de la pile en appelant la méthode avant d'ajouter le thread ou allouer de la mémoire à partir du tas le ferait fonctionner. Pas sûr par défaut combien de mémoire de pile a été allouée pour le fil. – user302581
- 1. Création d'un tableau bidimensionnel dans Objective-C
- 2. Recherche de tableau bidimensionnel dans l'objectif c
- 3. Tri d'un tableau bidimensionnel
- 4. Chargement du texte d'un fichier dans un tableau bidimensionnel (C++)
- 5. Comment utiliser un tableau C bidimensionnel d'objets Objective-C?
- 6. Tableau bidimensionnel de longueur variable dans Cobol
- 7. Tableau associatif bidimensionnel en PHP
- 8. Créer et remplir un tableau bidimensionnel dans Scala
- 9. Tableau bidimensionnel utilisant un vecteur
- 10. PHP - création d'un tableau bidimensionnel
- 11. Javascript: Filtrer un tableau bidimensionnel
- 12. Tableau de nombres entiers bidimensionnel à DataGridView
- 13. C# et sans fil
- 14. Comment convertir un tableau bidimensionnel C# en objet JSON?
- 15. Initialisation du tableau bidimensionnel de structures en C++
- 16. Comment retourner un tableau bidimensionnel C# à VBScript
- 17. rechercher un tableau bidimensionnel en java
- 18. difficulté à modifier tableau de rubis bidimensionnel
- 19. Ecriture d'un tableau bidimensionnel en Java
- 20. Tableau Python bidimensionnel: Trier second par Premier
- 21. Comment j'élèverais un tableau bidimensionnel en python?
- 22. affectation d'une valeur à un tableau bidimensionnel
- 23. Comment créer un tableau bidimensionnel en Perl?
- 24. Analyser un tableau JSON bidimensionnel en Javascript
- 25. Correspondance d'un tableau multidimensionnel avec un tableau bidimensionnel
- 26. requêtes mysql multiples dans un tableau bidimensionnel php
- 27. Aide: 8 X 10 tableau bidimensionnel de boutons dans Android
- 28. créer Dynamiquement fil dans C++
- 29. itération sur un vecteur STL bidimensionnel C++
- 30. Comment sauvegarder un tableau bidimensionnel en tant que fichier csv?
Je pense que nous avons besoin de voir un exemple spécifique. – AnthonyLambert
S'il vous plaît code postal. –