gpt4 book ai didi

c++ - 无法分配/声明 __64int (long long int) 数组

转载 作者:搜寻专家 更新时间:2023-10-31 02:21:48 25 4
gpt4 key购买 nike

我正在尝试运行这段代码:

#include <iostream>
#include <time.h>
#include <stdlib.h>
#include<stdint.h>
#include "BSTTemplate.h"
#include "functions.h"

using namespace std;

int main()
{
const __int64 SIZE = 1000000LL;
__int64 randNum;
binarySearchTree<__int64> bst1;
__int64 numArray[SIZE];


//I have more code after but the problem is occurring at the above code.

return 0;
}

我没有收到任何语法错误,因为它可以编译,但一运行就崩溃了。我评论了这些声明之后的所有代码,它以同样的方式崩溃了。我尝试使用 Step Into 对其进行调试,但它不会通过第一个括号“{”,而是打开一些汇编代码和一个错误,指出堆栈溢出。关于我做错了什么有什么帮助吗?这是我第一次使用大于 int 的数据类型。我尝试查找解决方案,但它们要么没有帮助,要么我不理解。我也在使用 64 位计算机。

我知道 long int 可以容纳 100 万,但我将使用数十亿的数字,所以我只想将所有内容都变成 long long int (或 __64int)。

应EdMaster的要求,这里是BSTTemplate.h的代码:

template <class type>
class binarySearchTree
{
private:
template<class type>
struct nodeType
{
type info;
nodeType<type> * lLink;
nodeType<type> * rLink;
};

nodeType<type> * root;

public:
binarySearchTree();
int height(nodeType<type> *p);
bool search(const type &searchItem) const;
void insert(const type &newData);
void deleteNode(const type &deleteItem);
void deleteFromTree(nodeType<type> * &p);

int numDups;
};

不确定这会是问题的原因。除了 insert 方法之外,没有任何方法定义分配内存。

最佳答案

"... and an error that says the stack overflowed ..."

const __int64 SIZE = 1000000LL;
// ...
__int64 numArray[SIZE];

可能需要比为您的进程配置的可用堆栈内存更多的堆栈内存(您至少需要 7812 KB:(1000000 * 64/8)/1024 )。尝试使用动态内存分配:

std::vector<__int64> numArray(SIZE);

关于c++ - 无法分配/声明 __64int (long long int) 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30992624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com