Я хочу исключить повторяющиеся значения из массива.Я передаю значения в функцию с помощью массива и после обработки собираю возвращенный массив (обработанные данные) по указателю.Размер указателя должен быть только уникальным значением, присутствующим в возвращаемом массиве.(Это работает нормально, если я показываю там в вызываемой функции.) Но в вызывающей функции она показывает меньшее значение, когда я возвращаю массив указателю в вызывающей функции.
#include <stdio.h>
int* test(int arr[],int size)
{
int i,j;
int flag=1;
static int local_arr[10];
int cnt=1;
local_arr[0]=arr[0];
for (i=1;i<=size; i++)
{
for(j=0;j<cnt;j++)
{
if(arr[i]==local_arr[j])
{
flag=0;
break;
}
else
flag=1;
}
if(flag==1)
{
local_arr[cnt]=arr[i];
cnt++;
}
}
return local_arr;
}
int main(void) {
// your code goes here
int *p,i;
int arr[] = {1,2,5,7,4,2,4,7,9};
int size = sizeof(arr)/sizeof(arr[0]);
p= test(arr,size);
for(i=0;i<(sizeof(p)/sizeof(p[0]));i++)
{
printf("%d\n",*(p+i));
}
return 0;
}