c - 如何持久化指针增量

标签 c function pointers

我有以下代码

   void fun(int * d)
   {
    d+=1;
   }

   int main()
   {
      int * f=malloc(5);
      f[0]=0;f[1]=1;f[2]=2;f[3]=3;f[4]=4;
      fun(f);
      printf("value : %d\n",*f);
      return 0;
   }

因此,我将一个整数指针传递给函数并在那里递增它。我希望当它返回到 main 时该增量能够持续存在。 当我打印该值时,输出为“0”。但我希望输出为“1”,因为我已经增加了函数中的值。

简单地说,我的问题是,如何持久保存对指针所做的更改?

最佳答案

假设您想要增加指针而不是值,您有两个选择:

  1. 将函数重铸为void fun(int ** d),在函数体中使用(*d)+=1;,并调用using 有趣(&f);

  2. 将函数重新转换为 int* fun(int* d),并返回新值。

如果您想增加,请在函数体中使用(*d)+=1;

您不需要将 *d 括起来:为了清楚起见,我将它们放入其中。

关于c - 如何持久化指针增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32589773/

相关文章:

无法从c文件中读取字符串

javascript - CRM 2011 - 联系人表单加载无法在生日字段更改时分配给函数结果

c++ - 无法访问 IplImage 数据

c - C中循环内的 sleep 函数有问题

C 到 Delphi/Pascal

javascript - 如何为另一个按钮功能制作点击计数器?

c++ - 无法弄清楚 C++ 中的指针!需要有关基本字符串和指针的信息

c - 将字符串读入 char 数组,然后获取字符串的大小

C程序的命令行执行

c++ - 接受无限相同数量的 3 种类型的函数