不知道为什么test01会输出乱码

#include <stdio.h>
#include <stdlib.h>
#include<mem.h>
struct dynamicArray{
void ** pAddr;//动态数组首个地址对应的阵势地址
int m_capacity;
int m_size;

};

//初始化数组
struct dynamicArray * ini_dyArray(int capacity){
if(capacity<=0){
return NULL ;
}
struct dynamicArray * array=malloc(sizeof(struct dynamicArray));
if(array==NULL){
return NULL;
}
array->pAddr=malloc(sizeof(void )(array->m_capacity));
array->m_capacity=capacity;//容量
array->m_size=0;//大小
//array->pAddr=&array;
return array;

}

void insert_dyArray(struct dynamicArray * array,int pos,void * data){

 if(array==NULL){

 }
 if(data==NULL){

 }
 if(pos<0||pos>array->m_capacity){
    //若数据无意义则尾插
    pos=array->m_capacity;
 }
 if(array->m_size==array->m_capacity){
        //新数组的容量
    int new_capacity=(array->m_capacity)*2;
        //创建新数组
        //1.申请一个更大的空间
    void ** new_array= malloc(sizeof(void *)*new_capacity);
    //C 库函数 void *memcpy(void *str1, const void *str2, size_t n)
    // 从存储区 str2 复制 n 个字节到存储区 str1
        //2.将arry中的数据复制到new_array中
    memcpy(new_array,array->pAddr,sizeof(void*)*array->m_capacity);//这里用size也可
        //3.释放原有空间
    free(array->pAddr);
        //4.改变指针指向
    array->pAddr=new_array;
        //5.改变容量
    array->m_capacity=new_capacity;



 }

    for(int i=array->m_size-1;i>=pos;i--){
        array->pAddr[i+1]=array->pAddr[i];
    }


 //2.插入元素
 array->pAddr[pos]=data;
    //3.更新大小
 array->m_size++;

}
void foreach_DynamicArray(struct dynamicArray * array,void(myForreach)(void)){
if(array==NULL){
return ;
}
if(myForreach==NULL){
return ;
}
for(int i=0;im_size;i++){

    myForreach(array->pAddr);
}

}
struct person{

char name[64];
int old;

};
void myPrintPerson(void *data){
struct person *ele=data;
printf("姓名:%s 年龄:%d\n",ele->name,ele->old);

}
void test01(){

struct dynamicArray * arr=ini_dyArray(5);
  struct person p1={"a",10};
 struct person p2={"b",20};
  struct person p3={"c",30};
   struct person p4={"d",40};
    struct person p5={"e",50};
    struct person p6={"f",60};
    insert_dyArray(arr,0,&p1);
    insert_dyArray(arr,0,&p2);
    insert_dyArray(arr,3,&p3);
    insert_dyArray(arr,11,&p4);
    insert_dyArray(arr,2,&p5);
    insert_dyArray(arr,1,&p6);
    //bbb fff aaa eee   ccc ddd
    foreach_DynamicArray(arr,myPrintPerson);

}
int main(){

test01();


return 0;

}