Как получить количество индексов, когда указатель массива передается вызывающей функции? - PullRequest
0 голосов
/ 31 марта 2019

Я хочу исключить повторяющиеся значения из массива.Я передаю значения в функцию с помощью массива и после обработки собираю возвращенный массив (обработанные данные) по указателю.Размер указателя должен быть только уникальным значением, присутствующим в возвращаемом массиве.(Это работает нормально, если я показываю там в вызываемой функции.) Но в вызывающей функции она показывает меньшее значение, когда я возвращаю массив указателю в вызывающей функции.

#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;
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...