1. ホーム
  2. c

[解決済み] 警告: 代入がキャストなしでポインタから整数を作る [デフォルトで有効] 。

2022-02-28 14:59:31

質問

私のコードは

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

int main (int argc, char *argv[]){
    int i = 0;
    int count = argc - 1;
    char *numbers = malloc(count * sizeof(char));
    for(i = 1 ; i <= argc ; i++){
       printf("%s ", argv[i]);
       numbers[i] = argv[i];
    }
    printf ("%s \n", numbers);
    return 0;
}

来たエラーは。

tamal@baba-desktop:~/Desktop/c$ cc experiment.c -o experiment

experiment.c: 関数 'main' の中です。

experiment.c:10:16: 警告: 代入はポインタから整数を作成します。 キャストなし [デフォルトで有効] で

試してみた numbers[i] = &(argv[i]); を10行目に追加しました。それでも同じ結果です。

解決方法は?

char値を取得するために、argvを2回参照解除する必要があります。 numbers[i] = *(*(argv + i));