尝试为bobby数组分配内存,但它无法正常工作。为什么呢?
我希望将bobby指针分配给5个空格但是当我运行并查看本地时它只有一个。
#include "queue.h"
#include <iostream>
using namespace std;
int main()
{
// Create the queue
CustomQueue* obj = new CustomQueue(5);
int astar[100];
int* bobby;
bobby = new int[5];
// Place numbers into the queue
obj->push(50);
obj->push(40);
obj->push(30);
obj->push(20);
obj->push(10);
return 0;
}
答案 0 :(得分:3)
我想也许你打算做
int bobby [5];
然后您将在调试器中看到所有元素。否则你会看到bobby作为指向值的指针,在visual studio中你需要输入类似的东西
bobby,5
查看所有5个元素。
如果你静态地这样做,你也可以把它放在堆栈上。
也
int bobby[5];
sizeof(bobby) = 20 (assuming 4 B/int)
但是
int* bobby;
sizeof(bobby) = 4.
答案 1 :(得分:1)
您的调试器(我假设您的意思是“查看本地”)只知道bobby
指针是指向单个整数的指针。调试器无法理解以下分配new int[5]
。这是由于指针和数组在C ++中的工作方式,并不是由于您的代码不正确。
您可以指示您的调试器显示您分配的数组的更多以下元素,但是这样做的方式将特定于您正在使用的任何工具。