不能进入函数内部执行,直接在主函数执行结束

函数执行调试未进入这两个函数,不知道为什么,求帮助
init_arr
show_arr
#include<stdbool.h>
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
struct Arr
{
int *pBase;//第一个元素地址
int len;//最大元素个数
int cnt;//当前数组有效元素个数
};

void init_arr(struct Arr *parr, int lenth);//初始化
bool append_arr();//追加
bool_insert_arr();//插入
bool_delect_arr();//删除
int get();//当前下标
bool is_empty(struct Arr *parr);//是否空
bool is_full();//是否满
void sort_arr();//排序
void show_arr(struct Arr *parr);//输出
void inversion_arr();//倒置

int main()
{
struct Arr arr;
int lenth;
printf("Please input longth:");
scanf_s("%d", &lenth);
init_arr(&arr,lenth);
show_arr(&arr);
//printf("%d", arr.len);

return 0;

}
void init_arr(struct Arr * parr,int lenth)
{
parr->pBase = (int*)malloc(sizeof(int) * lenth);
if (parr->pBase == NULL)
{
printf("动态内存分配失败!");
exit(-1);//终止整个程序。
}
else
{
parr->len = 0;
}
return ;//写完了
}
void show_arr(struct Arr* parr)
{
if (is_empty(&parr))
{
printf("数组为空!\n");
}
else
{
for (int i = 0; i < parr->cnt; i++)
printf("%d ", parr->pBase[i]);
}
}

bool is_empty(struct Arr* parr)
{
if (parr->cnt == 0)
{
return true;
}
else
{
return false;
}
}

打断点调试一下