请教一个C++二维数组问题

2025-04-19 12:13:02
推荐回答(2个)
回答1:

申请二维数组:

int size1 = 0;
int size2 = 0;
std::cout << "输入行数";
std::cin >> size1;
int** p2 = new int*[size1];
memset(p2, 0, size1*sizeof(int*));
std::cout << "输入列数";
std::cin >> size2;
for (int i = 0; i < size1; i++)
{
p2[i] = new int[size2];
memset(p2[i], 0, size2*sizeof(int));
}

另外的问题
1. 指向指针的指针,直接char** p;就声明完了

2. 指针数组的申请:p = new char*[a];这样就申请完了
这里没有错误,后面就应该正确了,但我不知道这样输入p[0]会有什么用。给一个指针输入地址有意义么?用户如何知道内存地址?

回答2:

把数组放到容器里面,然后利用迭代器输出就可以了吧。二维数组和一维数组的存储方式是一样的