嘿,伙计们,我刚刚开始围绕客观的C围绕我的头,并且正在Iphone上做一个小项目。我刚遇到一个奇怪的问题。我不得不在我的程序中处理图像,所以我有很多局部变量声明为temp [width] [height]。如果我不使用NSThread来执行图像处理,它会很好地工作。但是,如果我使用NSThread,每当我尝试访问声明为temp [widht] [height]的2-D数组时,它都会继续给我EXC_BAD_ACCESS。所以我必须从堆中分配内存才能有一个2-D数组。这将解决问题,但我仍然不明白。我的第一个想法是堆栈溢出,但它在一个线程中运行良好。我只是不明白。目标C中的线程和二维数组?
回答
在线程完成数组之前,数组本身的方法可能会终止,因此您的数组超出了作用域,并且内存被占用而被用于其他事情。但是你的线程不知道这一点,并且无论如何都访问内存。
有没有办法处理那种问题?我在多线程技术上是noob ... – user302581 2010-03-26 15:03:11
多线程是非常复杂的,并且还有很多问题需要处理(比赛条件,死锁等) - 您可能需要阅读这些内容。对于这个特定的问题,您应该在堆上分配共享资源,或者最好使用NSArray(无论如何都分配在堆上)的Objective-c对象。 – shosti 2010-03-26 15:34:17
谢谢你们!我发现了这个问题。它是堆叠式的。我创建了一维数组并尝试访问,但仍然不是。然后我把它做得更小,并且工作。我认为通过在添加线程之前调用方法来设置堆栈大小,或者从堆中分配内存将使其工作。默认情况下,不确定为线程分配了多少堆栈内存。 – user302581 2010-03-26 18:30:25
- 1. 目标中的二维数组C
- 2. 目标C中的二维数组
- 3. 二维数组的目标C从C#
- 4. C++中的二维数组
- 5. C++中的二维数组
- 6. c中的二维数组#
- 7. 线程在C++中,查找二维数组中的最大条目
- 8. 在目标c中的二维数组搜索
- 9. C++二维数组
- 10. 二维数组跨语言C++和C#
- 11. 循环和二维数组的C++
- 12. Objective-C中的二维数组Objective-C
- 13. 二维数组中的线性搜索
- 14. 二维数组和
- 15. 在C中分配二维数组中的一维数组#
- 16. 查找带有线程函数的二维数组中的最大条目
- 17. 二维数组C#的数组?
- 18. 指向数组和二维数组c的指针c
- 19. 二维数组C++(输入和打印)
- 20. C++堆栈和二维数组
- 21. C中的二维数组如何变成一维数组?
- 22. 二维数组的总和
- 23. C#,旋转二维数组
- 24. C++填充二维数组
- 25. C二维数组旋转
- 26. 二维数组值C++
- 27. C++二维动态数组
- 28. C++二维数组问题
- 29. 二维数组错误C++
- 30. Objective-C二维数组
我想我们需要看一个具体的例子。 – AnthonyLambert 2010-03-26 14:18:57
请发布代码。 – 2010-03-26 14:21:06