长双二维动态数组c++

long double 2d dynamic array c++

本文关键字:二维 动态 数组 c++      更新时间:2023-10-16

错误:数组下标类型'long double**[long double]'无效

long double** make2darray(long int V)
{
    long double **array2,i;
    array2 = (long double**) malloc (V*sizeof(long double*));
    for(i=0;i<V;i++)
    {
        array2[i] = (long double*) malloc (V*sizeof(long double));
    }
return array2;
}
但是,如果我将数据类型更改为long int,它会完美地工作吗?不明白什么是错误的,使二维动态长双数组这种方式?

数组中的索引必须始终为整型,您需要将声明更改为:

long double **array2;
size_t i;

C11标准(N1570)
6.5.2.1 数组下标(constraints)
  1. 其中一个表达式的类型为"指向完整对象类型的指针",另一个表达式的类型为"指向完整对象类型的指针"表达式为整型,结果为type。

在c++中,最好使用std::vectorstd::array分别用于可变长度或恒定长度的数组

long double **array2,i;

您的变量i具有长双类型。浮点变量不能用于数组下标。

使用此代码

long double **array2;
size_t i;