0

基本的に、ユーザーが入力したコマンドラインから値を読み取り、それらを配列に配置したいと考えています。これまでの私の試みは次のとおりです

#include    <stdlib.h>
#include    <stdio.h>
#include    <math.h>

#define     w   1.0


int main(int argc, char argv[])
{
    int     tmp;

    double  *x, *v, *m, *k, *R;

    x = malloc((argc-1)*sizeof(double));

    printf("%lf\n", argc);

    for(tmp=0; tmp<argc-1; tmp++)
    {
        x[tmp] = argv[tmp+1];
        printf("%lf\n", x[tmp]);
    }
}

argc の値の出力は 0 ですが、for ループは 3 回繰り返されますが、これは意味がなく、与えられる値は完全に間違っています。すみません、ちょっと素人です。前もって感謝します!

4

4 に答える 4

0
int main(int argc, char* argv[])
{
int i;

//calloc = malloc for N elemnts of given size
double* myArray = (double*)calloc(argc, sizeof(double));

//Check out arg 0!
for (i = 0; i<argc; i++)
{
    printf("arg [%d] = %s\n",i,argv[i]);
}
for (i = 1; i<argc; i++)
{
    sscanf(argv[i], "%lf", &myArray[i]);
    printf("myArray[%d] = %f\n",i, myArray[i]);
}
//avoid memory leak
free(myArray);
}

とにかく、arg[0] が入力されていないことを指摘したかっただけです。

于 2014-01-18T13:05:39.457 に答える