如何处理C中的递归和数组?

And*_*dre 2 c arrays recursion

所以我有以下递归函数:

int printSeq(int last[], int n, int arr[], int longest){

     if(last[longest]==longest) return arr[longest];
     printf("%d ", printSeq(last, n, arr, last[longest]));
}
Run Code Online (Sandbox Code Playgroud)

last是一个数组,其中的位置指向数组.最长的是当前位置.

但是当我运行它时,我得到了不在数组中的奇怪值.我错过了什么吗?

基本情况是最后[最长]指向其自己的位置

asc*_*ler 10

a之后该函数没有return任何值printf.这会导致未定义的行为.