したがって、整数の 2 つの配列 (a[5] と b[8]) を比較し、ポインターを使用して繰り返される要素をチェックするように求める割り当てがあります。これまでのところ、私が思いついたコードは次のとおりです。
int main(void) {
int *pa, i, j, sizeA=5, sizeB=8, a[sizeA], b[sizeB], aux[sizeB];
for (i=0; i<sizeA; i++){
scanf("%d", &a[i]);
}
for (i=0; i<sizeB; i++){
scanf("%d", &b[i]);
}
for (i=0; i<sizeB; i++){
aux[i] = NULL;
}
for(i=0;i<sizeA; i++){
for(j=0; j<sizeB; j++){
if ((a[i] == b[j]))
aux[i] = b[j];
}
}
for(i=0;i<sizeA; i++){
pa = &aux[i];
if ((pa != NULL)&&(*pa!=aux[i+1])){
printf("%d \n", *pa);
}
}
return (EXIT_SUCCESS);
}
エラーなしでコンパイルおよび実行されましたが、繰り返される要素がない場合、最後の for ループは 435304 などの奇妙な値を出力します。
ポインター「pa」が配列「aux」をスキャンし、配列の次の要素とは異なる要素のみを出力し、ポインターが指している位置が空かどうかを確認しようとしました。
任意のヒント?
編集:補助配列をNULL値で初期化して解決しました。それは有効な解決策としてカウントされますか? それを行うより良い方法はありますか?
EDIT2:私を助けてくれたみんなに感謝します. 良い1日を。