Передача массива, содержащего указатели на функцию правильно

Код:

/*
 * 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");
}

Мой компилятор не одобряет этот код. - [Предупреждение] передающего аргумента 1 из 'printArray' делает целое число из указателя без броска - printArray (array2, 4); - преобразованное в нижний индекс значение [Ошибки] не является ни массивом, ни указателем - printf (" %d", *iXArray[iCntr]);

Что я делаю неправильно, и почему? Как я фиксирую это?

5
задан Pieter 19 January 2010 в 13:21
поделиться