标签:inpu one sha for str 连续 使用 space clu
#include <iostream>
using namespace std;
/*
最近在写一个程序的时候用到了二级指针作为函数参数的情况,就在函数内部如何操作二级指针为数组做以下探讨:
无非有两种使用方式 a[i][j] or *((type *)a + i*col + j);
先看下面的测试源码:
*/
void test(int col, double **a)
{
int i, j;
for (i = 0; i < col; i++)
{
for (j = 0; j < col; j++)
{
a[i][j] = 2.0;
}
}
}
void test_1(int col, double **a)
{
int i, j;
for (i = 0; i < col; i++)
{
for (j = 0; j < col; j++)
{
*((double *)a + i * col + j) = 2.0;
}
}
}
void main()
{
int i, j, col;
cout << "Please input a number must less than 5" << endl;
cin >> col;
double ** a;
a = new double*[col];
double a_1[5][5];
for (i = 0; i < col; i++)
{
a[i] = new double[col];
}
for (i = 0; i < col; i++)
{
for (j = 0; j < col; j++)
{
a[i][j] = 1.0;
a_1[i][j] = 10.0;
}
}
//test(col, a); // 1. pass
//test(5,a_1); // 2. error无法从double[5][5]转换为double**,因为不知道5 5大小
//test_1(col,a); // 3. error 第一行和第二行不是连续的
//test_1(5,a_1); // 4. error 无法从double[5][5]转换为double**,因为不知道5 5大小
delete[] a[0];
delete[] a[1];
delete[] a;
cout << "Done!" << endl;
}
标签:inpu one sha for str 连续 使用 space clu
原文地址:https://www.cnblogs.com/cheshl/p/12639948.html