C++ 指针内存分配问题

C++ 指针内存分配问题,c++,C++,正在尝试为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* bob

正在尝试为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;
}
#包括“queue.h”
#包括
使用名称空间std;
int main()
{
//创建队列
CustomQueue*obj=新的CustomQueue(5);
国际天文卫星[100];
内特*博比;
博比=新整数[5];
//将号码放入队列中
obj->push(50);
obj->push(40);
obj->push(30);
obj->push(20);
obj->push(10);
返回0;
}
您的调试器(我假设这就是您所说的“查找本地”的意思)只知道
bobby
指针是指向单个整数的指针。调试器不理解以下分配
new int[5]
。这是由于指针和数组在C++中工作的方式,而不是因为你的部分代码不正确。 您可以指示调试器显示所分配数组的更多以下元素,但具体方法取决于您使用的任何工具。

调试器(我假设这就是您所说的“查找本地”的意思)只知道
bobby
指针是指向单个整数的指针。调试器不理解以下分配
new int[5]
。这是由于指针和数组在C++中工作的方式,而不是因为你的部分代码不正确。
您可以指示调试器显示所分配数组的更多以下元素,但具体方法取决于您使用的任何工具。

我认为您可能打算这样做

int-bobby[5]

然后,您将在调试器中看到所有元素。否则,您会将bobby视为指向该值的指针,并且在VisualStudio中,您需要键入以下内容
bobby,5
查看所有5个元素

如果您是静态地执行此操作,那么不妨将其放在堆栈上

但是


我想也许你是有意的

int-bobby[5]

然后,您将在调试器中看到所有元素。否则,您会将bobby视为指向该值的指针,并且在VisualStudio中,您需要键入以下内容
bobby,5
查看所有5个元素

如果您是静态地执行此操作,那么不妨将其放在堆栈上

但是


到底是什么不起作用?怎么搞的?你以为会发生什么?你的期望怎么没有实现?你怎么“看本地”<代码>波比仅为1。bobby指向的是5。运行程序时,显示所有变量的本地选项卡。在“监视”窗口中键入“bobby,5”。到底是什么不起作用?怎么搞的?你以为会发生什么?你的期望怎么没有实现?你怎么“看本地”<代码>波比仅为1。bobby指向的是5。运行程序时,显示所有变量的本地选项卡。在“监视”窗口中键入“bobby,5”。
int bobby[5];
sizeof(bobby) = 20 (assuming 4 B/int)
int* bobby;
sizeof(bobby) = 4.