如何取消引用此指针指针,该指针包含有关动态创建的2D数组的数据?
char **dog = new char *[480];
for (int i = 0; i < 480; i++)
dog[i] = new char[640];
我知道最左边的asterix保存下一个右边的地址信息,但我很难访问存储在那里的值(在char [640]数组中)。
提前致谢!
答案 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]
,因为它不会在此上下文中存在。