I think i have a bad function

does this result in an infinite loop or only with some values of NCode:void fill_me(int A[ ], int N) { if (N != 0) /* if N is not equal to zero do*/ { --N; /*decrease N*/ A[N] = N;/* this attempts to put N in A[N] which is wrong.. am I correct*/ fill_me(A,N); } }