我们可以在整数类型的双指针中分配2D整数数组的地址吗?怎么可能
Can we assign the address of 2D integer array in double pointer of integer type?How is it possible?
////main.cpp/////////////////////////////////////////
#include <iostream>
using namespace std;
int main() {
int a[2][2]={1,2,3,4};
int **ptr=&a;
cout << endl;
system("PAUSE");
return 0;
}
编译上述代码时,它给出以下错误
[Error] cannot convert 'int (*)[2][2]' to 'int**' in initialization
通常,不建议使用指针。但是,您可以看一下:
#include <iostream>
int main() {
int a[2][2] = {{1,2},{3,4}};
int *ptr1=a[0];
int *ptr2=&a[0][0];
int **ptr3=&ptr1;
int **ptr4=&ptr2;
std::cout << "the source variable: " << a[0][0] << std::endl;
std::cout << "pointer to array: " << ptr1[0] << ", " << ptr1[1] <<
", " << ptr1[2] << ", " << ptr1[3] << std::endl;
std::cout << "pointer to one element: " << *ptr2 << std::endl;
std::cout << "pointer to pointer: " << **ptr3 << std::endl;
std::cout << "pointer to pointer: " << **ptr4 << std::endl << std::endl;
system("PAUSE");
return 0;
}
指针和指针和指针和阵列可以提供一些很好的解释
注意:通常,不建议使用指针,因为在调试时可能会造成困难,例如内存泄漏或无效的内存访问!结果,发明了智能指针,以防止普通指针的可能后果。您可以看一下std :: shared_ptr。
您要做的是不好的形式,但是您需要的是reinterpret_cast
int **ptr=reinterpret_cast<int **>(a);
相关文章:
- 从二进制文件中读取整数数组
- 新的整数数组向右移动?
- C++ 中的二维整数数组,每行中的元素数量不均匀
- 给定一个整数数组,需要在Max_Heap上运行操作。得到错误"segmentation fault",有什么想法吗?(C++)
- 为什么在我的 main 函数中声明整数后我的整数数组中会出现错误?
- 在 C++ 中将整数数组转换为位集表示形式的最佳方法?
- 从两个 4x64 位整数数组中获取取模
- 字符到整数数组
- 从函数参数 [C++] 复制整数数组
- 指向整数数组和打印总和的指针
- 使用可变参数函数将整数和/或整数数组放入单个 int 数组中
- 线程安全整数数组?
- 整数数组中最长的回文
- 在大整数数组中查找子数组
- 查找整数数组中最接近的数字
- 创建<int>对整数数组指针的矢量引用 (C++)
- 整数指针数组的元素是否可以指向整数数组?
- 如何将整数数组相乘得到一个数字?
- 当 map 是一个整数数组并且由 operator[] 创建时,它是否初始化其映射类型
- 将文本文件读入整数数组