草庐IT

malloc_info

全部标签

android - 找不到错误 :resource style/TextAppearance. Compat.Notification.Info(又名 {packageId}.test :style/TextAppearance. Compat.Notification.Info)

我刚刚将build.gradle编译SDK更新为27API。compileSdkVersion27buildToolsVersion'27.0.3'targetSdkVersion27但是一旦我点击同步按钮它就​​会抛出error:resourcestyle/TextAppearance.Compat.Notification.Info(aka{packageId}.test:style/TextAppearance.Compat.Notification.Info)notfound.error:resourcestyle/TextAppearance.Compat.Notificat

c++ - 从 std::type_info 检索数据类型的大小

在C++03中,当您使用运算符typeid时,一个type_info返回对象。是否可以仅根据此结果检索给定类型的大小,例如由sizeof返回的运营商?例如:std::type_infoinfo=typeid(int);intintSize=sizeof(int);intintSize2=info.getSize();//doesn'texist!问题是我们使用第三方多数组类返回类型信息,但不返回类型的大小。 最佳答案 我能看到的最好方法(我想被证明是错误的)是预先注册类型,如下所示:#include#include#include#

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++ - type_info 不是 RTTI 的一部分吗?

我问了一个问题DoC++PODtypeshaveRTTI?有人在评论中告诉我:PODtypesdohavetype_info,butdon'thaveRTTI,andthat'spossiblebecausetype_infoisn'talwaysRTTI.这似乎是正确的,因为我可以获得POD(非多态)类型的type_info。但是当我编译这个简单的程序时:#includestructX{inta;};intmain(){usingnamespacestd;std::cout带有GCC的标志-fno-rtti:$g++-fno-rttimain.cpp&&./main它不会编译:mai

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在处理内存分配的机制方面有什么区别?