开发者

unable to convert contents in argv[] into float[][] in C

开发者 https://www.devze.com 2023-02-15 12:48 出处:网络
I am doing a program where I\'m multiplying matricies, but my big issue is converting from the input into the two arrays that I\'ll eventually be multiplying. The following is my code for conversion i

I am doing a program where I'm multiplying matricies, but my big issue is converting from the input into the two arrays that I'll eventually be multiplying. The following is my code for conversion including the declaration of the arrays. (I removed valida开发者_运维问答tion that the input is 8 valid floats as I've been debugging it).

    //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++;
       }
   }
......

I get an error when using atof at compilation that says: "subscripted value is neither array nor pointer" I've been looking up the error, but haven't figured out what it means in my case.


I think what you want is the following:

a[j][k]=atof(argv[i]);

Note the use of () rather than [] around argv[i] - atof is a function, not an array.


atof is a function - you can call functions using (), not the subscript operator [].

 a[j][k] = atof(argv[i]);

I assume this was a typo - perhaps change your font?


Use

atof(argv[i])

instead of

atof[argv[i]]

Beware the difference between [] and ().


atof is a function, so you should use atof(argv[i]);

0

精彩评论

暂无评论...
验证码 换一张
取 消