我正在编写一个递归泛洪填充算法来查找图像中的连接组件,我的代码编译并运行良好的MSVC 2008编译器; 但是mingw编译的二进制文件在运行时崩溃了.
在我使用std :: stack将算法转换为非递归后,一切顺利.
但是,如果我必须在某些情况下使用递归算法,并且mingw无法处理呢?
如何增加二进制文件的堆栈大小,是否有任何编译选项?
谢谢
在Windows上,我们可以将值写入注册表以了解这一点
但我怎么知道我的应用程序是否是第一次在Mac上运行?我需要执行一些初始化任务.
谢谢
我已经使用ojective近一个星期了,我主要是一个c ++编码器.在我阅读了Apple的内存管理指南之后,我尝试将c ++中的内存使用方式带入目标c ...我试图总结这些场景,我想如果我遵循这些说明,我不会犯错误.如果我错了,请告诉我:)
我将尝试不使用自动释放,个人来说,通过使用自动释放,在某个自动释放池耗尽之前可能总会有一些冗余内存.我只会使用release,这可以确保我的应用程序随时使用最少的内存.
用我自己的话说,苹果说的另一件事是:每次我添加一个retain/alloc/copy,我都应该添加一个版本某处.
以下是我总结的所有场景:
在同一个函数中:分配一个对象,使用它并释放它
在类的init函数中,在类的dealloc函数中分配一个对象,释放该对象
当需要拥有一个指针时,应该在类的方法中保留一个输入指针(比如方法A),然后在类的dealloc函数中释放指针.
我发现在目标c 中使用retain的时间与在c/c ++ 中使用memcpy的时间相同,所以我将retain作为"内存有效副本"
如果输入保留指针要设置为成员指针变量,则应首先释放成员指针.因此,在情况下[3],ALLOC在初始化类的配对与释放在方法A,而保留在方法A配对与释放在的dealloc
返回指针作为返回值.老实说,当我使用c ++时,我从未做过这样的事情.如果要返回一个成员指针就可以了,因为有人会照顾它:
-(UIButton*) getTheButton() {
return theButton;
}
Run Code Online (Sandbox Code Playgroud)
但是返回指向本地分配对象的指针真的很糟糕:
-(UIButton*) getTheButton() {
UIButton* myButton = [[UIButton alloc] init];
return myButton; //TERRIBLE!
} …Run Code Online (Sandbox Code Playgroud)