首页 > 解决方案 > 将数组指针传递给调用函数时如何获取索引计数?

问题描述

我想从数组中消除重复值。我通过数组将值传递给函数,并在处理后通过指针收集返回的数组(处理后的数据)。指针的大小应该只是返回数组中存在的唯一值。(如果我在被调用函数处显示它工作正常。)但是在调用函数中,当我将数组返回到调用函数中的指针时,它显示的值较小。

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

标签: c

解决方案


推荐阅读