C++指针取消引用

C++ pointer pointer dereferencing

本文关键字:引用 取消 指针 C++      更新时间:2023-10-16

如何取消引用这个指针指针,它保存有关动态创建的 2D 数组的数据?

char **dog = new char *[480];
for (int i = 0; i < 480; i++)
    dog[i] = new char[640];

我知道最左边的星号保存着下一个右边的地址信息,但我很难访问存储在那里的值(在 char[640] 数组中)。

提前感谢!

假设您将值分配给第一个 dog 元素为 strcpy(dog[0],"abcd");

您可以通过以下方式访问它: dog[0][0]'a'

dog[0]"abcd"

如果我理解正确,您可以使用:

char letter = dog[x][y];

检索一封信。

char* dogName = dog[x];

检索整个字符串。

void main()
{
    char **dog = new char *[480];
    char * rupert = "Rupert_the_dog";
    dog[0] = rupert;
    std::cout << dog[0] << "   " << dog[0][1];
    system("pause");
}

请注意,dog[0]输出整个字符串文字,而dog[0][1]输出第二个字母 'u' 。这是您访问数组元素的方式,因为您的数组包含 char * 指针。但是,鉴于此示例,请勿尝试执行dog[number > 0][1],因为它在此上下文中不存在。