为什么可以编译出来,但是不能没有结果呢

#include <string.h>
#include <stdlib.h>
#include "student.h"

void intersection(int* A, int* B, int lenA, int lenB, int** C, int* lenC)
{
	/*
	
    A表示数组A,B表示数组B,lenA表示数组A的长度,lenB表示数组
	B的长度,C表示结果,lenC表示结果的长度
	需要将交集存放在数组C中。
	*/

	/*********Begin********/
    int* hash_A = (int*)malloc(100*sizeof(int));
    int* hash_B = (int*)malloc(100*sizeof(int));
    memset(hash_A,0,100);
    memset(hash_B,0,100);
    for(int i=0;i<lenA;++i)
    {
        hash_A[A[i]]++;
    }
    for(int i=0;i<lenB;++i)
    {
        hash_B[B[i]]++;
    }
    int total=0;
    for(int i=0;i<100;++i)
    {
        if(hash_A[i]>0&&hash_B[i]>0)
            total++;
    }
    int* result=(int*)malloc(total*sizeof(int));
    int cur_index=0;
    for(int i=0;i<100;++i)
    {
        if(hash_A[i]>0&&hash_B[i]>0)
            result[cur_index++]=i;
    }
    *C=result;
    *lenC=total;
	/*********End*********/
}
#include <string.h>
#include <stdlib.h>
#include "student.h"

void intersection(int* A, int* B, int lenA, int lenB, int** C, int* lenC)
{
	/*
	
    A表示数组A,B表示数组B,lenA表示数组A的长度,lenB表示数组
	B的长度,C表示结果,lenC表示结果的长度
	需要将交集存放在数组C中。
	*/

	/*********Begin********/
    int n[10];          //定义A哈希表存储点
    for(int ia=0;ia<=lenA-1;ia++){
        int ra=A[ia];     //定义r为中转评判           
        int ja=lenA-1;   //定义扫描
        while(ja!=-1){
            if(ra==A[ja]){
                n[ra]++;
                ja--;
            }else{
                ja--;
            }
        }   
    }
    
    int m[10];      //定义B哈希表存储点
    for(int ib=0;ib<=lenB-1;ib++){
        int rb=A[ib];              
        int jb=lenA-1;    
        while(jb!=-1){
            if(rb==A[jb]){
                m[rb]++;
                jb--;
            }else{
                jb--;
            }
        }
    }

    for(int p=0;p<=9;p++){
        if(m[p]>0&&n[p]>0){
            *C[*lenC]=p;
        }
        *(lenC)++;
    }
	/*********End*********/
}

要有main()函数调用intersection()函数,并且完善输入输出细节