我的代码:

#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];
   }

我想发生的是,pptr现在指向5个指针数组的开始,每个指针都指向5个字符数组的开始。

我在主函数的末尾添加了一个断点,并添加了pptr进行监视,它仅存储一个指针。为什么会发生这种情况,如何正确执行?

最佳答案

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

要解决此问题,您可以在pptr[0]上添加手表,然后通过将其更改为pptr[0],5来指定其“大小”为5。另外,如果size是可变的,则可以执行“ptr [0],[size]”,其中size是一个表达式,该表达式计算要显示的元素数。

10-08 07:13