jjzjj

stack-dump

全部标签

c++ - 除了 Stack 和 Heap 之外还有什么内存使用范例吗?

我学过数据结构,我知道除了栈和堆之外还有很多其他的数据结构,为什么现在的进程在地址空间中只包含这两种范式作为“标准设备”?是否有任何全新的内存使用范例?感谢您的回复。是的,我意识到我的陈述有问题。堆数据结构与进程地址空间中的堆不同。但是我想知道的是proecss地址空间除了Stackarea和Heaparea之外,还有什么新的内存使用范式吗?似乎其他内存使用方式都是建立在这两个基本范例之上的。这2个范式是某种元范式? 最佳答案 让我们思考一下。我们有两个基本的存储规则。连续且分散。连续的。Stack受顺序约束。后进先出。函数调用的嵌

c++ - 尝试访问 std::stack 的索引

voidPDA::parse(vectorwords){for(inti=0;i我遇到了这些错误PDA.cpp:25:error:nomatchforâoperator[]âinâ((PDA*)this)->PDA::stack[j]âPDA.cpp:26:error:nomatchforâoperator[]âinâ((PDA*)this)->PDA::stack[(j-1)]â对于这些行if(!stack[j]){//sincej-1whentheindexis0willcauseanerrorif(stack[j-1]==matchingBracket){我查找了std::sta

高通AI Stack Models开源仓库介绍(二)

文章介绍AI是高通一直关注的领域,为此推出了高通AI软件栈(QualcommAIStack),提供了一个集成所有AI框架(如TensorFlow、PyTorch、ONNX、Keras)、开发者库、系统软件和操作系统的整合平台,有不同层面的架构支持,能够助力开发人员一次开发,即可跨不同终端和操作系统进行扩展,赋能生态系统。QualcommAIStackModels是高通开源的一个模型示例Github仓库,演示了使用QualcommAIStack端到端的解决方案,也提供模型精度调优的例子。QualcommAIStackModels的代码可以在这里获得https://github.com/quic/

c++ - 警告 #13212 : Reference to ebx in function requiring stack alignment

我正在尝试使用ICC2018编译以下代码:__asm{movebx,xx;xxaddresstoregisters}其中xx是int16类型。这是我的函数中的第一条指令。我使用上面的汇编代码收到以下警告:警告#13212:在需要堆栈对齐的函数中引用ebx令人惊讶的是,当我用eax或esi替换ebx时,我看到警告消失了。我不明白为什么我只看到ebx的问题,据我所知,ebx和eax都具有相同的架构(32位寄存器)。另外,当我用ICC2013编译相同的代码时,我没有看到警告。谁能帮我解决这个警告?谢谢! 最佳答案 如果需要额外对齐,所选平

c++ - 分配在 "stack"上的 vector 可以在函数之间传递吗?

我知道当函数完成执行时,分配在函数堆栈上的变量将变得不可访问。然而,vector类型将它们的元素分配在堆上,无论它们是如何分配的。例如,vectorA;会在堆上而不是栈上为其元素分配空间。我的问题是,假设我有以下代码:intmain(intargc,char*argv[]){//initializeavectorvectorA=initVector(100000);//dosomethingwiththevector...return0;}//initializethevectorvectorinitVector(intsize){vectorA(size);//initializet

c++ - std::map 在低内存情况下导致 "stack overflow"

此应用程序正在使用C++在WindowsXP上的VS2010中开发。当计算机在物理内存上运行时非常低(并且页面文件被禁用,因为它是我们的测试用例),这行代码:std::map>MyMap;在malloc.c中导致“堆栈溢出”错误'returnHeapAlloc(_crtheap,0,size?size:1);'MyApp.exe中0x7c90e8e5处的未处理异常:0xC00000FD:堆栈溢出。此调用是从应用程序的线程之一进行的。如果内存不足是错误,它应该抛出bad_alloc谁能告诉我这里可能是什么原因。编辑:这是实际堆栈的样子ntdll.dll!7c90e8e5()[Frames

c++ - 数组作为模板参数 : stack or heap?

与堆相比,我对堆栈的了解非常初级,但是当涉及到数组时,据我所知,在堆栈上创建了这样的东西floatx[100];而像这样的东西是在堆上创建的float*x=newfloat[100];但是,如果我创建一个模板数组类,并以“堆栈”数组类型(如float[100])传递它,会发生什么情况?示例:#includeusingnamespacestd;templateclassArray{public:intsize;T*data;Array(intsize_):size(size_){data=newT[size];}~Array(){delete[]data;}};intmain(){int

c++ - 在 Boost.Asio Stackful Coroutine 中产生

当使用Boost.Asio堆栈协程时,我如何“手动”让出以便另一个协程或异步操作有机会运行?例如,在发送对从TCP套接字接收到的命令的响应之前,我需要执行长时间的计算:asio::spawn(strand_,[this,self](asio::yield_contextyield){chardata[256];while(socket_.is_open()){size_tn=socket_.async_read_some(boost::asio::buffer(data),yield);if(startsWith(data,"computePi")){while(!computatio

C++ googlemocks : Getting a stack trace of an uninitialized call

模拟类看起来像这样:构造模拟类{MOCK_METHOD0(foo,void());};如果我忘记在模拟对象上设置预期的调用,我会得到这样的结果:GMOCKWARNING:Uninterestingmockfunctioncall-returningdirectly.Functioncall:foo()Stacktrace:并且堆栈跟踪为空。那么,为了获取堆栈跟踪必须做什么? 最佳答案 这描述了here:YoucancontrolhowmuchGoogleMocktellsyouusingthe--gmock_verbose=LEVE

c++ - 如何保证在 Visual Studio 2005 下的 C++ 中捕获 EXCEPTION_STACK_OVERFLOW 结构化异常?

背景我有一个带有Poof-Crash[1]的应用程序。我相当确定这是由于堆栈损坏造成的。应用程序是多线程的。我正在使用“启用C++异常:是的,带有SEH异常(/EHa)”进行编译。我编写了一个SE翻译器函数并用它调用了_set_se_translator()。我已经为set_terminate()和set_unexpected()编写了函数并进行了设置。为了获得StackOverflow,我必须在高负载下以Release模式运行几天。在调试器下运行不是一种选择,因为应用程序的执行速度不足以达到查看问题所需的运行时间。我可以通过在执行其中一个函数时添加无限递归来模拟该问题,从而测试是否捕