我宣布了简单的结构:
struct Heap {
int size;
int *heap_array;
};
当我试图创建表时,其中k
是来自stdin的int:
Heap *rooms = new Heap[k];
我得到了:
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Aborted
使用int字面意思一切正常:
Heap *rooms = new Heap[0];
如何声明这样的表?
答案 0 :(得分:5)
有可能从stdin
读取的值无效。如果读取失败,您可能会有一些默认值,如2 ^ 32。