stack相关内容

C ++堆栈变量已损坏

我从我编写的代码得到以下错误 - 运行时检查失败#2 - 堆栈变量'pChar'已损坏 从研究中可以看出,问题与pHexValueBuffer = new char [256]和memset有关,我如何使用veritable - 存储值来返回十六进制数而不是十进制。我的研究表明,不知何故,我将走出与我设置的内存边界,只是不知道如何。 有关如何解决这个问题的任何建议? void ..
发布时间:2016-10-27 04:01:09 C/C++开发

为什么它不安全返回值在函数堆栈

我在阅读bruce eckel时遇到了下面的段落,其中他试图解释为什么它的函数在堆栈上返回值不安全 现在想象如果一个普通函数试图在堆栈上返回值 会发生什么,你可以触摸返回地址上面的堆栈的任何部分,所以函数必须 但是当执行汇编语言返回时,堆栈指针必须指向返回地址(或者正好在它的下面,取决于你的机器),因此在RETURN之前,函数必须将堆栈指针向上移动,从而清除所有局部变量。如果您尝试在堆 ..
发布时间:2016-10-27 03:32:47 C/C++开发

C ++:将结构存储在堆栈中

我有一个结构: struct Vehicle { char ad; //到达离开char string license; // license value int arrival; //军事时间到达 }; 我想将结构中的所有值存储在堆栈中。 我可以通过执行以下操作在堆栈中存储一个值: stack ..
发布时间:2016-10-27 02:15:15 C/C++开发

使用C ++ stl中定义的堆栈

#include using namespace std; int main(){ stack s; int i; for(i = 0; i s.push(i); } for(i = 0; i printf(“%d”,s.pop } } 上述代码有什么问题? 错误: int mai ..
发布时间:2016-10-27 02:04:07 C/C++开发

为什么连续int数据类型varaiables位于12个字节偏移在visual studio?

要澄清这个问题,请观察c / c ++代码片段: int a = 10,b = 20, c = 30,d = 40; //连续的4个int数据值。 int * p =& d; //变量d的地址。 现在,在visual studio中(2013年测试),如果p == hex_value的值在调试器存储器窗口中查看),那么,您可以观察到,其他变量a,b,c和d的地址各有一个 ..
发布时间:2016-10-25 17:20:43 C/C++开发

XOR树遍历的算法

我有一个二叉树,其内部节点由'AND'或'XOR'组成。叶节点也有和数据成员。我需要使用堆栈(非递归)打印所有可能的路径。我已经搜索了遍历树与堆栈,但其算法不适用于我的情况,因为postorder,preorder或inorder不能应用。我只是不能想到任何算法,所以你能提供一些提示或一些链接,源等吗? 示例树: > 示例输出:Cheese(10),Butter(20),Filo ..
发布时间:2016-10-25 16:54:37 C/C++开发

XOR树遍历的算法

我有一个二叉树,其内部节点由'AND'或'XOR'组成。叶节点也有和数据成员。我需要使用堆栈(非递归)打印所有可能的路径。我已经搜索了遍历树与堆栈,但其算法不适用于我的情况,因为postorder,preorder或inorder不能应用。我只是不能想到任何算法,所以你能提供一些提示或一些链接,源等吗? 示例树: > 示例输出:Cheese(10),Butter(20),Filo ..
发布时间:2016-10-25 16:52:21 C/C++开发

C ++ - Stack Pop()函数与Singly Linked列表

对于初学者,这是我目前为我的数据结构类的家庭作业。我不是在请求答案,我要求帮助。 我有一个堆栈类,实现一个链表,而不是一个数组。我目前正试图写我的 pop()函数。我有一个节点为我的堆栈的一部分。 我只是困惑,得到我的theBack节点的前缀。 任何帮助将是真棒!谢谢! 解决方案 由于栈的限制推送和弹出操作,堆栈实际上很简单的实现为单链表。如果你在列表的头插入推送的元素, ..
发布时间:2016-10-25 15:54:03 C/C++开发

将缺少的左括号添加到方程中

我很难找到一个适当的解决方案给定的问题,一直在寻找一些想法在互联网上。找不到任何。 问题是:编写一个程序,从标准输入中获取没有左括号的表达式,并打印带括号的等效中缀表达式 给定表达式: 1 + 2)* 3 - 4)* 5 - 6) br> 输出:((1 + 2)*((3 - 4)*(5-6))) 解决这个问题的最佳方法是什么? 解决方案 我认为目标是假设 因此,您 ..
发布时间:2016-10-24 17:03:58 C/C++开发

运行时检查失败#2 - 变量'x'周围的堆栈已损坏

我在下面的代码中返回时收到此运行时检查失败。我相信类似的代码在程序中的其他地方运行良好。任何想法? String GetVariableName(CString符号,CString文件路径) { char acLine [512] ; char acPreviousLine [512]; CString csFile; FILE * fp; csFile.Forma ..
发布时间:2016-10-23 20:46:36 C/C++开发

使用向量类实现堆栈的链表和动态数组

我正在阅读两种不同的实现堆栈的方式:链表和动态数组。链表对动态数组的主要优点是链表不必调整大小,而如果插入了太多的元素,就不得不调整动态数组的大小,从而浪费大量的时间和内存。 这让我想知道这是否适用于C ++(因为有一个向量类,当插入新元素时会自动调整大小)? 解决方案 很难比较两者,因为它们的内存使用模式有很大不同。 向量调整大小 向量根据需要动态调整大小。它通过分配一 ..
发布时间:2016-10-23 20:42:26 C/C++开发

运行时检查失败#2 - 变量'x'周围的堆栈已损坏

我在下面的代码中返回时收到此运行时检查失败。我相信类似的代码在程序中的其他地方运行良好。任何想法? String GetVariableName(CString符号,CString文件路径) { char acLine [512] ; char acPreviousLine [512]; CString csFile; FILE * fp; csFile.Forma ..
发布时间:2016-10-23 20:33:52 C/C++开发

如何从堆栈访问函数局部变量?

从 http://www.learncpp。 com / cpp-tutorial / 79-the-stack-and-the-heap / 当函数 被调用时发生: 超出函数调用的指令地址被推入堆栈。这是CPU在 函数返回后要记住的地方。 房间是在函数的返回类型的栈上。 当前的堆栈顶部保存在特殊的指针 在此点之后添加到堆栈中的所有内容都被视为函数的“本地”。 所有函数 ..
发布时间:2016-10-23 20:07:53 C/C++开发

如何从堆栈访问函数局部变量?

从 http://www.learncpp。 com / cpp-tutorial / 79-the-stack-and-the-heap / 当函数 被调用时发生: 超出函数调用的指令地址被推入堆栈。这是CPU在 函数返回后要记住的地方。 房间是在函数的返回类型的栈上。 当前的堆栈顶部保存在特殊的指针 在此点之后添加到堆栈中的所有内容都被视为函数的“本地”。 所有函数 ..
发布时间:2016-10-23 20:00:27 C/C++开发

如何从堆栈访问函数局部变量?

从 http://www.learncpp。 com / cpp-tutorial / 79-the-stack-and-the-heap / 当函数 被调用时发生: 超出函数调用的指令地址被推入堆栈。这是CPU在 函数返回后要记住的地方。 房间是在函数的返回类型的栈上。 当前的堆栈顶部保存在特殊的指针 在此点之后添加到堆栈中的所有内容都被视为函数的“本地”。 所有函数 ..
发布时间:2016-10-23 19:53:10 C/C++开发

推一个Lua表

我在 C 中创建了一个Lua表,但我不知道如何将该表推到堆栈顶部,所以我可以将它传递给Lua函数。 有没有人知道如何做? 这是我目前的代码: lua_createtable(state,libraries.size(),0); int table_index = lua_gettop(state); for(int i = 0; i ..
发布时间:2016-10-23 19:36:11 C/C++开发

推一个Lua表

我在 C 中创建了一个Lua表,但我不知道如何将该表推到堆栈顶部,所以我可以将它传递给Lua函数。 有没有人知道如何做? 这是我目前的代码: lua_createtable(state,libraries.size(),0); int table_index = lua_gettop(state); for(int i = 0; i ..
发布时间:2016-10-23 19:31:15 C/C++开发

C ++堆栈和作用域

我在Visual C ++ 2008上试过这个程式码,它显示A和B没有相同的地址。 int main() { { int A; printf(“%p \\\ ”,& A); } int B; printf(“%p \\\ ”,& B); } 但是因为A在定义B时不再存在,我不知道为什么编译器似乎没有做什么看起来像一个非常简单的优化(这是一个非常简单的优化 ..
发布时间:2016-10-23 19:25:49 C/C++开发

C ++堆栈和作用域

我在Visual C ++ 2008上试过这个程式码,它显示A和B没有相同的地址。 int main() { { int A; printf(“%p \\\ ”,& A); } int B; printf(“%p \\\ ”,& B); } 但是因为A在定义B时不再存在,我不知道为什么编译器似乎没有做什么看起来像一个非常简单的优化(这是一个非常简单的优化 ..
发布时间:2016-10-23 15:09:05 C/C++开发

堆栈溢出 - 静态内存与动态内存

如果在C / C ++的main函数中写入 int m [1000000]; ,它将得到堆栈溢出的运行时错误。相反,如果你写 vector m; 然后push_back 1000000元素,它会运行正常。 我很好奇为什么会发生这种情况。他们都是本地内存,不是吗?提前致谢。 解决方案 是的,向量本身是一个自动(堆栈)对象。但是该向量包含一个指向其内容的指针(内部动态数组), ..
发布时间:2016-10-23 12:49:27 C/C++开发