因此,我有一個賦值要求我比較2個整數數組(a [5]和b [8]),並檢查重複元素使用指針。 到目前爲止,這裏的代碼我想出了:檢查指針是否指向int數組上的空白空間
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.
我試圖通過數組「aux」使指針「pa」掃描,並且只打印與數組上的下一個元素不同的元素,並檢查指針指向的位置是否爲空。
任何提示?
編輯:我解決了它與NULL值初始化輔助數組。它算作一個有效的解決方案嗎?有沒有更好的方法來做到這一點?
編輯2:感謝所有幫助過我的人。祝你今天愉快。
這些垃圾值... – someone
據我瞭解的地方值使用指針進行分配的好處是不必預先分配aux的大小。 – phoenixgr
將「NULL」賦值給一個整數將其設置爲「0」。那麼'0'是'a'和'b'的條目的有效值嗎? – alk