草庐IT

objective-c - 在哪里可以找到 iOS 中 malloc() 和相关 C 函数的文档?

Xcode的文档浏览器并不知道malloc。我想阅读这些功能的文档,但找不到。去哪里看? 最佳答案 在Xcode4中,当您在文档浏览器中搜索malloc时,您将在“SystemGuides”下看到一个名为“iOSManualPages”的结果。这链接到各种BSD函数的联机帮助页,包括malloc。老实说,不过,我会转到终端并输入manmalloc,因为iOS环境与Darwin足够接近,所以使用Darwin联机帮助页。 关于objective-c-在哪里可以找到iOS中malloc()和相

iphone - 为什么此 Objective-C 代码会引发 malloc 错误?

我用这个方法在object-c中编码base64字符串,但应用程序有时会崩溃:-(NSString*)base64Encode{//PointtostartofthedataandsetbuffersizesintinLength=[selflength];intoutLength=((((inLength*4)/3)/4)*4)+(((inLength*4)/3)%4?4:0);constchar*inputBuffer=[selfbytes];char*outputBuffer=malloc(outLength);outputBuffer[outLength]=0;//64digi

ios - Guard Malloc 导致 wacko 应用程序行为

我有一个iOS应用程序,我认为它正在发生内存踩踏。因此,我在Xcode中打开了GuardMalloc、GuardEdges和Scribble,并运行它试图追踪它。但是启用GuardMalloc后,事情开始以非常奇怪的方式出错。在某些(可预测的)情况下,不会绘制View的背景,您可以看到它们背后的View。如果我下载文件,应用程序会在下载结束时在主线程上崩溃,堆栈中没有我的代码(main除外),并且有时会在控制台如::CGBitmapContextInfoCreate:unabletoallocate201000bytesforbitmapdata:CGContextSetInterpo

android - 如何找到 GC_FOR_MALLOC 的来源?

我正在开发一个Android应用程序,它陷入了GC_FOR_MALLOC释放的无限循环:06-1511:24:56.685:DEBUG/dalvikvm(118):GC_FOR_MALLOCfreed4136objects/374744bytesin66ms06-1511:24:59.176:DEBUG/dalvikvm(521):GC_FOR_MALLOCfreed9340objects/524152bytesin645ms06-1511:24:59.846:DEBUG/dalvikvm(521):GC_FOR_MALLOCfreed9344objects/524328bytesin

安卓NDK : Why is this malloc() having no observable effect?

这是我使用的代码的简化版本Java:privatenativevoidmalloc(intbytes);privatenativevoidfree();//thisiscalledwhenIwanttocreateaverylargebufferinnativememorymalloc(32*1024*1024);//EDIT:afterallocating,weneedtoinitializeitbeforeAndroidseesitasanythignotherthana"reservation"memset(blob,'\0',sizeof(char)*bytes);...//a

android - malloc 和 dlmalloc 之间的区别

为了在dalvik堆中分配内存区域,应用程序使用dlmalloc,而不是普通的malloc,为什么使用dlmalloc,以及它与malloc的区别。(据我所知,为了在创建dalvikVM时分配dalvik堆,使用了malloc。) 最佳答案 高阶位是Dalvik需要有一个底层分配器,它与默认的malloc管理的堆分开,因此它可以对分配的发生方式进行正确的控制,知道其他子系统不会干扰。事实证明,dlmalloc是一个相当成熟的现有库,它提供了我们需要的隔离和Hook。我们的Intent(直到我离开团队时)是最终我们会用更定制的东西取而

c++ - 如何知道使用了哪个 malloc?

据我了解,存在许多不同的malloc实现:dlmalloc–通用分配器ptmalloc2–glibcjemalloc–FreeBSD和Firefoxtcmalloc–谷歌libumem——Solaris有什么方法可以确定我的(linux)系统上实际使用了哪个malloc?我读到“由于ptmalloc2的线程支持,它成为了linux的默认内存分配器。”我有什么办法可以自己检查吗?我问是因为我似乎没有通过在下面的代码中并行化我的malloc循环来加快速度:for(inti=1;iptrStore(mallocCnt);boost::posix_time::ptimet1=boost::po

c++ - 使用 c malloc 函数分配内存的意外结果

我必须在多次迭代(6)中为4个指向浮点(2D)上的指针的指针分配内存,但在第二次迭代中,malloc为两次分配提供了相同的地址。代码:inti=0,a=0;for(i=0;i使用gdb调试:(gdb)printi$42=1(gdb)set$pos=0(gdb)printP_i[$pos++]$51=(float*)0x804d500(gdb)printP_i[$pos++]$52=(float*)0x804d148(gdb)printP_i[$pos++]$53=(float*)0x804d4e8(gdb)printP_i[$pos++]$54=(float*)0x804d500P_i

c++ - C++ 标准中的什么措辞允许 static_cast<non-void-type*>(malloc(N));去工作?

据我了解5.2.9静态转换中的措辞,void*-to-object-pointer转换的结果唯一允许的时间是void*首先是反向转换的结果。在整个标准中有一堆对指针表示的引用,void指针的表示与char指针的表示相同,等等,但它似乎从来没有明确地说转换任意void指针会产生指向内存中相同位置的指针,具有不同的类型,就像类型双关未定义而不是双关一样对象的实际类型。因此,虽然malloc清楚地返回了合适内存的地址等,但据我所知,似乎没有任何方法可以移植地实际使用它。 最佳答案 C++0x标准草案在5.2.9/13中有:Anrvalue

c++ - 为什么替换 malloc() 需要链接器的知识,而::operator new() 不需要?

查看链接的问题。Differencebetweenglobaloperatornewandmalloc接受的答案指出,“替换malloc会引发大量蠕虫。它可以做到,但不可移植,因为它需要链接器的知识。”为什么替换malloc需要链接器的知识,为什么替换::operatornew()不需要? 最佳答案 标准C++对覆盖::operatornew做出了规定。虽然实现肯定是困惑的并且与链接器相关,但C++程序可以只定义一个不同的::operatornew并且它可以工作。C++标准明确表示:程序可以用自己的定义替换这些(等等各种限制和细节)