在动态创建指针数组时,Visual Studio不显示完整数组

Vik*_*xén 2 c++ debugging pointers visual-studio

我的代码:

#include "pch.h"
#include <iostream>

using namespace std;

   int main()
   {
      char** pptr = new char*[5];

      for (int i = 0; i < 5; i++)
      pptr[i] = new char[5];
   }
Run Code Online (Sandbox Code Playgroud)

我想要发生的是,pptr现在指向一个5个指针数组的开头,每个指针都指向一个包含5个字符的数组的开头.

我在main函数的末尾加了一个断点并添加pptr到watch中,它只存储一个指针.为什么会发生这种情况,我该如何正确地做到这一点?

在此输入图像描述

Mat*_*her 6

这是Visual Studio中指针类型的默认知识.你在代码中指出char** pptr是一个指针,但它不知道有多大.

要解决此问题,您可以添加监视pptr[0],然后您可以通过将其更改为"大小"来指定它pptr[0],5.此外,如果大小是可变的,您可以执行"ptr [0],[size]",其中size是一个表达式,其计算结果为要显示的元素数.