So I am trying to edit an int variable from the main inside a function. When I define the int variable at the main it gets an address but when I sent this int variable to the function it becomes NULL. this is my function call at the main:
    AB = intersect(A, groupLengthA, B, groupLengthB, AB, &groupLengthAB);
this is my function:
int* intersect(int* A, int sizeA, int* B, int sizeB,int* sizeAB)
{ 
int i, j,k=0;
int* AB;
if (sizeA < sizeB)
{
    AB = (int*)malloc(sizeof(int)*sizeA);
    if (AB == NULL)
    {
        printf("***Allocation ERROR***");
        return;
    }
}
else
{
    AB = (int*)malloc(sizeof(int)*sizeA);
    if (AB == NULL)
    {
        printf("***Allocation ERROR***");
        return;
    }
}
for (i = 0; i < sizeA; i++)
{
    for (j = 0; j  < sizeB; j ++)
    {
        if (*(A + i) == *(B + j))
        {
            *(AB + k) = *(A + i);
            k++;
        }
    }
}
*sizeAB = k;
return AB;
}
When I gets from the the main the sizeAB it becomes NULL and therefor I can edit the values inside the pointer.
this is my main:
void main()
{
    //Variables
    int* A;
    int* B;
    int* AB = NULL;
    int groupLengthA, groupLengthB, i, groupLengthAB = 0 ;
    printf("Please enter the length of group A: \n");
    scanf("%d", &groupLengthA);
    printf("Please enter the length of group B: \n");
    scanf("%d", &groupLengthB);
    A = (int*)calloc(groupLengthA, sizeof(int));
    if (A == NULL)
    {
        printf("***Allocation ERROR***");
            return;
    }
    B = (int*)calloc(groupLengthB, sizeof(int));
    if (B == NULL)
    {
        printf("***Allocation ERROR***");
        return;
    }
    printf("Please fill the content of group A: \n");
    for (i = 0; i < groupLengthA ; i++)
    {
        scanf("%d", (A + i));
    }
    printf("Please fill the content of group B: \n");
    for (i = 0; i < groupLengthB; i++)
    {
        scanf("%d", (B + i));
    }
    printf("Group A: ");
    for (i = 0; i < groupLengthA; i++)
    {
        printf("[%d] ", *(A + i));
    }
    printf("\n");
    printf("Group B: ");
    for (i = 0; i < groupLengthB; i++)
    {
        printf("[%d] ", *(B + i));
    }
    AB = intersect(A, groupLengthA, B, groupLengthB, AB, &groupLengthAB);
        for (i = 0; i < groupLengthAB; i++)
        {
            printf("%d", *(AB + i));
        }
 
    