回答:変数を正しく初期化していませんでした。私は、ポインタの宣言はC.Cコンパイラエラー - 警告:割り当ては、キャストのないポインタから整数を生成します。エラー:添え字付きの値が配列でもポインタでもありません
にこのコードのチャンクをどのように機能するかを覚えておく必要が
はの形式でいくつかのコマンドライン引数に取るようになっている:
./foo 1 2 3 4 5 6 7 8 9 10 ... (any reasonable number of arguments so long as they're divisible by 5
私の計画は、5を持っていることです後でロジックで使用するために引数を格納するint型の可変長配列。したがって、引数が10個ある場合は、2つの2-int配列を持つことになります。
int* IP1, IP2, BID, PN, EID;
int i;
if((argc < 2) || ((argc-1) % 5) != 0)
{
/* Some error statements */
}
IP1 = (int*)malloc(argc-1);
IP2 = (int*)malloc(argc-1); //This is line 26
BID = (int*)malloc(argc-1);
PN = (int*)malloc(argc-1);
EID = (int*)malloc(argc-1);
for(i = 0; i < argc-1; i+=5){
IP1[i] = argv[i+1];
IP2[i] = argv[i+2]; //This is line 33
BID[i] = argv[i+3];
PN[i] = argv[i+4];
EID[i] = argv[i+5];
printf("%d\t", i);
}
問題は、私はこれらの奇妙なエラー
>cc foo.c -o foo
foo.c: In function ‘main’:
foo.c:26: warning: assignment makes integer from pointer without a cast
foo.c:27: warning: assignment makes integer from pointer without a cast
foo.c:28: warning: assignment makes integer from pointer without a cast
foo.c:29: warning: assignment makes integer from pointer without a cast
foo.c:33: error: subscripted value is neither array nor pointer
foo.c:34: error: subscripted value is neither array nor pointer
foo.c:35: error: subscripted value is neither array nor pointer
foo.c:36: error: subscripted value is neither array nor pointer
を取得し、私は彼らがあるかを表すことになっているものは考えている、です。私はそれを見て、今まで何も助けていない。私は皆ができることを望んでいた。
EDIT:レコードのために、26〜30行目と33〜37行目をコメントアウトしてみました。私は後世のためにそれを加えたいと思っただけです。
すでに回答がありましたので、もう少しヒント - あなたはあまりにも少ないメモリを割り当てていませんか?バイト単位で、sizeof(int)を掛けなければなりません。おそらく – keltar
。問題を修正しようとしたときに早めに変更しました。 – BigDamnHero