// 生成一个mxn的矩阵int**B,*Bstorage, i;
Bstorage =(int*)malloc(m * n *sizeof(int));
B =(int**)malloc(m *sizeof(int*));for(i =0; i < m; i++)
B[i]=&Bstorage[i*n];
函数内传入二级指针, 函数内动态生成二维数组
void test(int **&A) {
A = new int* [2];
A[0] = new int [2];
A[1] = new int [2];
A[0][0] = 110;
}
int **B;
test(B);
二维数组传入函数
template <class T>
T* vector_multiple_matrix(T* vec, T** matrix, int row, int column) {
T* result = new T [column];
for (int i = 0; i < column; i++) {
result[i] = 0.0;
for (int j = 0; j < row; j++) {
result[i] += (vec[j] * matrix[j][i]);
}
}
return result;
}
double A[2] = {2, 2,};
double B[2][3] = {
{2, 4, 1}, {1, 2, 1}};
double** p = new double* [2];
p[0] = B[0];
p[1] = B[1]; //调用时需要将二维数组转化为二级指针
double* C = DataUtils<double>::vector_multiple_matrix(A, p, 2, 3);
cout << C[0] << " " << C[1] << " " << C[2] << endl;
nan和inf的判断
int isfinite(x) ,判断x是否有限,是返回1,其它返回0;
int isnormal(x),判断x是否为一个数(非inf或nan),是返回1,其它返回0;
int isnan(x),当x时nan返回1,其它返回0;
int isinf(x) ,当x是正无穷是返回1,当x是负无穷时返回-1,其它返回0。有些编译器不区分。 ## 获取类型最大值