无法将 argv[] 中的内容转换为 C 中的 float[][]

Jon*_*han 5 c floating-point argv atof

我正在做一个程序,其中我要进行矩阵相乘,但我的大问题是将输入转换为我最终要相乘的两个数组。以下是我的转换代码,包括数组的声明。(我删除了输入是 8 个有效浮点数的验证,因为我一直在调试它)。

    //declare the arrays
float a[2][2];
float b[2][2];
float c[2][2];

int main (int argc, char *argv[])
{
    int i,j,k,l;

    i=0;
    l=4;
// declare and initialize arrays
   for( j =0; j<2; j++)
   {
       for(k=0;k<2; k++)
       {
           a[j][k]=atof[argv[i]];
           b[j][k]=atof[argv[l]];
           i++;
           l++;
       }
   }
......
Run Code Online (Sandbox Code Playgroud)

在编译时使用 atof 时出现错误:“下标值既不是数组也不是指针”我一直在查找该错误,但还没有弄清楚它在我的情况下意味着什么。

Kev*_*ent 5

我认为你想要的是以下内容:

a[j][k]=atof(argv[i]);
Run Code Online (Sandbox Code Playgroud)

请注意,使用的是函数()而不是[]周围argv[i]-atof是函数,而不是数组。