C ++指针指针解除引用

时间:2014-12-31 16:09:13

标签: c++ pointers

如何取消引用此指针指针,该指针包含有关动态创建的2D数组的数据?

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

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

提前致谢!

3 个答案:

答案 0 :(得分:1)

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

您可以访问: dog[0][0]提供'a'

dog[0]提供"abcd"

答案 1 :(得分:1)

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

char letter = dog[x][y];

检索一个字母。

char* dogName = dog[x];

检索整个字符串。

答案 2 :(得分:1)

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],因为它不会在此上下文中存在。