草庐IT

my_malloc

全部标签

android - 错误 org.json.JSONException : No value for PROJECT_NAME This is my json

我收到错误org.json.JSONException:NovalueforPROJECT_NAMEThisismyjson{"PROJECTS":[{"PROJECT_NUMBER":"2062","PROJECT_NAME":"OPW51183"},{"PROJECT_NUMBER":"404","PROJECT_NAME":"404"},{"PROJECT_NUMBER":"2125","PROJECT_NAME":"OPW50016"},{"PROJECT_NUMBER":""},{"PROJECT_NUMBER":"2130","PROJECT_NAME":"OPW51151

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++标准明确表示:程序可以用自己的定义替换这些(等等各种限制和细节)

c++ - 为什么 malloc 在全局命名空间中?

据我了解,C库的C++版本喜欢stdlib.h的原因之一(cstdlib)被引入是为了不污染全局命名空间。但事实证明我可以使用malloc在全局命名空间中,即使我没有#include.那我为什么要#include然后使用std::malloc?(我使用的是g++4.8.2版) 最佳答案 过去曾要求C头文件(*.h)只将名称放入全局命名空间,而相应的C++头文件只将名称放入std。.结果证明这是不切实际的,而且通常没有人遵循。因此,标准委员会标准化了现有的做法,并更改了规则,以便C头文件必须将名称放入全局命名空间并且可以将它们放入st

c++ - 重新定义 malloc/free with static linking has multiple definition error

我公司最近想把编译器从gcc-3.4更新到gcc-4.5。但是,我们客户的机器可能没有最新的libstdc++.so,所以我们想静态链接我们的二进制文件。我们的程序需要定制的malloc()/free()以满足非常高的性能要求。我修改了makefile,在链接时添加了一个-static,得到了以下错误信息:/usr/lib64/libc.a(malloc.o)(.text+0x18c0):Infunction`free'::multipledefinitionof`free'../../ic/src/memmgr/libmemmgr_mt_thread.a(memmgr_mt_thre

c++ - 关于 malloc 和 new 在各自处理内存分配的机制方面的区别?

这个问题在这里已经有了答案:Whatisthedifferencebetweennew/deleteandmalloc/free?(15个答案)关闭7年前。malloc和new在处理内存分配的机制方面有什么区别?

c++ - 诅咒库 : why does getch() clear my screen?

我正在尝试使用C++学习curses库(pdcurses,因为我在Windows操作系统中)。我有一个显示3个窗口的程序,然后是一个while循环来根据getch()捕获的按键进行一些处理。当按下F1键时,循环退出。然而,尽管使用wrefresh()刷新了所有三个窗口,但在我输入第一次按键之前没有任何显示。没有while循环,一切都显示正常。我做了很多测试,好像第一次调用getch()会完全清除屏幕,但后续的不会。我的问题是:我错过了什么?起初,我想也许getch()正在调用一个隐式的refresh(),但为什么后续调用它的行为不同?非常感谢您的帮助。这是代码。#includeintm

c++ - 带有容器和默认分配器的模板模板参数 : can I make my declaration more compact?

我在看这个有趣的话题:https://stackoverflow.com/a/16596463/2436175我的具体案例涉及使用来自opencv的cv::Point_和cv::Rect_的标准容器声明模板函数。我想针对以下模板:我将使用的标准容器类型完成cv::Point_和cv::Rect_定义的基本数据类型我最终做出了以下声明:templateclassContainer_t>voidCreateRects(constContainer_t,std::allocator>>&points,constTvalue,Container_t,std::allocator>>&rects