2015-10-20 3 views
-2

Я не могу понять, что здесь не так. Это должно быть функцией для чтения от пользователя размера массива, а затем передать его для работы, чтобы начать заполнять массивОбщая функция Входной массив

#include <stdio.h> 
#include <stdlib.h> 

int input_array(int *start, int s_size); 

int main() 
{ 
    int arr_size; 

    printf("Please enter the Size of your array: "); 
    scanf("%d",&arr_size); 

    int arr[arr_size]; 

    input_array(arr,arr_size); 

    return 0; 
} 
int input_array(int *start, int s_size) 
{ 
    static int counter=0; 

    printf("Start fill your array with %d elements: \n\n",s_size); 

    for(counter=0; counter<s_size; counter++) 
    { 
     printf("Input Element : "); 
     scanf("%d",start[counter]); 
     printf("\n"); 
    } 
    return start[0]; 
} 

this is the error I get when I run the program

+0

'scanf' хочет адрес-' '& оператор для его параметров. Глава 1 в вашем любимом программировании на языке C для новичков. – Lundin

+1

Включить предупреждения компилятора на самом высоком уровне –

ответ

4

В вы действуете этого заявления,

Как start является int * -

scanf("%d",start[counter]);  // pass address of variable 

вам нужно передать адрес start[counter], потому что это тип int.

+0

lol, я тоже получил это, но не смог найти правильный синтаксис, чтобы получить адрес косвенного индексированного int :) –

+0

@MartinJames Умм, извините, но я не совсем понимаю что вы пытаетесь сказать :) – ameyCU

+0

Я знаю, что не так, но не как правильно исправить :( –

2

Я нашел ответ, что эта линия

scanf("%d",start[counter]); 

должен быть

scanf("%d",&start[counter]); 

и '&' оператор был missig

+0

или просто 'start + counter' –

Смежные вопросы