草庐IT

MALLOC_MMAP_THRESHOLD

全部标签

c++ - new/malloc 或 delete/free 是否占用或使缓存行无效?

我对缓存行为很好奇。下面是一些与缓存相关的问题:写操作是否将数据带入缓存?考虑像A[i]=B[i]这样的赋值,A[i]会被加载到缓存中吗?因为我只是将一些东西写入A[i]而不是读取它的值。分配大内存时,内存可能来自操作系统。出于安全原因,操作系统会将数据初始化为零(Reference)。如果赋值会把数据带入缓存(问题1),这种机制会占用缓存吗?假设有一个已分配的数组B,并且整个B现在都在缓存中。释放数组B后,B占用的缓存行是否会立即失效(可用)?有人可以给我提示吗? 最佳答案 从这里https://people.freebsd.or

c++ - Visual C++ 运行时 malloc/free 会将内存返回给操作系统吗?

问题与Willmallocimplementationsreturnfree-edmemorybacktothesystem?非常相似,但我对Windows/MicrosoftVisualStudio的答案以及有关确切虚拟内存状态的详细信息感兴趣。请问VisualC++CRTfree将内存还给系统?关于虚拟内存分配,内存的确切状态是什么?对一个大内存块做free之后,block中的内存是committed,reserved,还是free?如果我调用_heapmin怎么办?免费后? 最佳答案 查看2010的源码,可以看到malloc/

c++ - LD_PRELOAD 仅适用于 malloc,不是免费的

我正在尝试通过LD_PRELOAD将malloc/free/calloc/realloc等插入到一些插入器中。在我的小测试中,似乎只有malloc被插入,即使free被检测到(见输出)。我希望输出包含一行“NANO:free(x)”——但缺少这一行。给定//compilewith:gcctest.cc#include#includeintmain(intargc,char*argv[]){void*p=malloc(123);printf("HOSTp=%p\n",p);free(p);}和//compilewith:g++-O2-Wall-fPIC-ldl-olibnano.so-s

c++ - 使用 mmap() 时从 'void*' 到 'char*' 的无效转换

我有以下片段:char*filename;unsignedlonglongintbytesToTransfer;intfd,pagesize;char*data;fd=open(filename,O_RDONLY);if(fd==NULL){fputs("Fileerror",stderr);exit(1);}cout但是当我编译时,我收到:error:invalidconversionfrom‘void*’to‘char*’[-fpermissive]data=mmap((caddr_t)0,bytesToTransfer,PROT_READ,MAP_SHARED,fd,0);有人可

c++ - 我们应该删除一个不是 new/malloc 的指针吗?

classClassA{public:ClassA(ClassB*p)b(p){}~ClassA(){deleteb;}ClassB*b;};这样的设计好吗? 最佳答案 答案是视情况而定。您必须明确谁负责对象的生命周期。此外,ClassA缺少用户定义的复制构造函数和赋值运算符,这可能会导致未定义的行为。例如:ClassAobject1(newClassB());//object1takesownershipoftheobjectClassAobject2(object1);//object2takesownershipofthesa

c++ - malloc分配的对象动态类型是什么?

例如,C++标准指的是术语“动态类型”(而C标准在类似上下文中指的是“有效类型”)Ifaprogramattemptstoaccessthestoredvalueofanobjectthroughaglvalueofotherthanoneofthefollowingtypesthebehaviorisundefined:thedynamictypeoftheobject,但是用malloc分配的对象的动态类型是如何确定的呢?例如:void*p=malloc(sizeof(int));int*pi=(int*)p;pi指向的对象的动态类型是否为int? 最佳

c++:本地数组定义与 malloc 调用

这有什么区别:somefunction(){...char*output;output=(char*)malloc((len*2)+1);...}还有这个:somefunction(){...charoutput[(len*2)+1];...}什么时候一个比另一个更合适?谢谢大家的回答。这是一个总结:例如。1是堆分配例如。2是栈分配栈上有大小限制,将其用于较小的分配你必须释放堆分配,否则会泄漏一旦函数退出,堆栈分配就不可访问堆分配在您释放它(或应用程序结束)之前是可访问的VLA不是标准C++的一部分欢迎指正。这里是对堆与栈之间区别的一些解释:Whatandwherearethestac

Malloc在C中的工作

我是C的初学者。我想知道,怎么样malloc在职的。这是一个示例代码,我在试图理解它正在工作时写了。代码:#include#includeintmain(){inti;int*array=malloc(sizeof*array);for(i=0;i输出:Arrayis:12345在上面的程序中,我只为1个元素分配了空间,但是该数组现在包含5个元素。因此,由于程序运行顺利而没有任何错误,目的是realloc().有人可以解释为什么吗?提前致谢。看答案该程序运行顺利的事实并不意味着它是正确的!尝试增加5在某种程度上for循环(500000,例如,就足够了)。在某个时候,它将停止工作给您SEGFAU

ios - 分配 : *** error for object: Invalid pointer dequeued from free list *** set a breakpoint in malloc_error_break to debug in Magical record IOS

当我尝试使用MR_importValuesForKeysWithObject插入数据时,我的应用程序崩溃了:malloc:errorforobject0x174291c0e:Invalidpointerdequeuedfromfreelist.Setabreakpointinmalloc_error_breaktodebug.崩溃的代码是:+(NSArray*)MR_executeFetchRequest:(NSFetchRequest*)requestinContext:(NSManagedObjectContext*)context{__blockNSArray*results=n

objective-c - malloc 48 bytes Memory leak in allocateing the memory 没有得到任何解决方案

我正在使用一个应用程序,在该应用程序中我收到内存分配泄漏,例如strdup框架中的malloc48字节,我已经搜索了很多但没有找到任何解决方案,我附上了仪器内存泄漏的屏幕截图。如果有人知道解决方案并且我的xcode版本是4.3.3和ios5.1.1,请帮助我。 最佳答案 这是目前iOS中与UIScrollViews相关的已知错误。您目前所能做的就是等待系统更新并希望它已修复。这里有更多信息:http://openradar.appspot.com/11081198 关于objective