代碼:傳遞包含指向數組功能正常
/*
* code.c
*/
#include <stdio.h>
void printArray(int iXArray, int iSize);
int main() {
int array1[] = {7, 9, 3, 18};
int *array2[] = {array1 + 0, array1 + 1, array1 + 2, array1 + 3};
printArray(array2, 4);
return 0;
}
// This should print the values in array1
void printArray(int iXArray, int iSize) {
int iCntr;
for (iCntr = 0; iCntr < iSize; iCntr++) {
printf("%d ", *iXArray[iCntr]);
}
printf("\n");
}
我的編譯器不同意這個代碼。 - [Warning]傳遞`printArray'的arg 1時,不會轉換指針的整數 - printArray(array2,4); - [錯誤]下標值既不是數組也不是指針 - printf(「%d」,* iXArray [iCntr]);
我在做什麼錯,爲什麼?我該如何解決?
我應該提到如果我決定使用此函數編輯它,我希望第一個數組保持不變。如果我編輯array2,我會改變指針。 – Pieter 2010-01-19 13:28:30
結構修改應該允許你這樣做。 – 2010-01-20 06:27:58