C++指针取消引用
C++ pointer pointer dereferencing
如何取消引用这个指针指针,它保存有关动态创建的 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]
,因为它在此上下文中不存在。
相关文章:
- C++取消引用指针.为什么会发生变化
- 使用取消引用的指针的多态性会产生意外的结果.为什么?
- 取消引用运算符不能重载
- 在他自己的方法中,有可能将一个对象取消引用到另一个对象吗
- C++ 关于指针取消引用的技术问题
- 没有取消引用/解包对象的标准方法?
- 列表 iter 不取消引用 使用列表进行插入排序
- 在这个函数中是有缺陷的,因为取消引用 null 是无效的,所以我想更改代码
- 取消引用结束指针到数组类型的一个
- 取消引用向量时出现问题
- 取消引用指向整数的指针时获得不同的结果
- C++:取消引用十六进制值,有点语法问题
- C/C++ 取消引用错误:在空检查之前取消引用
- 取消引用后C++空测试
- 立即取消引用unique_ptr
- 如何在不使用临时变量的情况下取消引用返回指针的函数的返回值?
- 取消引用 void 指针以将值分配给结构
- boost_multi_index迭代器取消引用给出常量
- 为什么"std::uninitialized_copy"通常取消对未初始化内存的迭代器的引用不是未定
- 矢量迭代器不能与 std::shared_ptr<> 取消引用