初始化一个空堆栈
Initializing an empty Stack
我试图初始化大小为3的空堆栈,但我的程序不允许我将NULL放入甚至1个元素中。我不知道是什么问题。当程序试图初始化其中一个元素时,程序将停止工作。
Stack300::Stack300 ()
{
for (int i = 0; i < 3; i++)
{
stackArray[i] = ' ';
//stackArray[i] = i;
}
top = 0;
return;
}
我的。h文件。
#ifndef CONGERA2_H
#define CONGERA2_H
typedef float Element300;
class Stack300
{
public:
Stack300 ();
Stack300 (const int);
Stack300 (Stack300 &old);
~Stack300();
void push300(const Element300);
Element300 pop300();
void viewTB300();
void viewBT300();
private:
const int MAX_STACK = 80;
Element300 * stackArray;
int top;
};
#endif
和我的主文件
#include <iostream>
#include "congera2.h"
using namespace std;
int main()
{
Element300 temp1 = 1.1;
Element300 temp2 = 2.2;
Element300 temp3 = 3.3;
Stack300 myStack;
Stack300 myStack2 (myStack);
/* myStack.push300(temp1);
myStack.push300(temp2);
myStack.push300(temp3);*/
cout << "hello";
return 0;
}
在构造函数中,您永远不会为'stackArray'成员分配任何内存。下面这行代码将完成一个包含3个浮点整数的动态数组的初始化。
stackArray = new float[3];
你需要确保这些内存也在析构函数中被释放。
编辑,增加一些有用的资源;这些页面很好地解释了指针和动态内存分配背后的概念:指针,动态内存
相关文章:
- 在使用堆栈为下一个最大数字编写代码时面临 SIGSEGV(分段错误)
- 使用一个内存集数组和单个堆栈在 O(n) 中查找数组的下一个更大元素
- 使用 STL 交换堆栈 C++ 中的第一个和最后一个元素
- 使用堆栈查找每个元素的下一个更大的元素
- 如何在 C++03 中没有重复代码的情况下在堆栈上创建一个非常量 C 字符串数组?
- 作者在解释C 中的堆栈和堆时犯了一个错误,或者我正在误读某些内容
- 我如何转换一个基于动态的,基于指针的int堆栈,以便将其打印成字符串
- 从一个堆栈移动到另一个堆
- 我认为我有一个堆栈溢出(已达到 SDL 表面限制)
- C++11 Lambda闭包通过引用涉及一个堆栈变量,该变量离开作用域是允许的,但得到了未定义的行为
- 如何调用在另一个堆栈流中创建的函子对象
- 编写一个函数,返回一个堆栈,该堆栈包含所有小于给定数字的元素,并且顺序相同
- 将一个堆栈的值分配给另一个堆栈
- 如何将内容从一个堆栈移动到另一个堆栈
- 我怎么能得到一个堆栈溢出在c++和Unix
- 试图在c++中实现一个堆栈模板(失败得很惨)
- 在我的代码中,scoped_ptr指向一个堆栈变量 - 这是否延长了堆栈变量的生命周期
- 如何反转一个堆栈
- 试图写一个c++堆栈程序
- 通过使用另一个堆栈查找堆栈中的最大值