c语言malloc 后用*的问题


param_type * x_array_map (param_type (*f)(param_type) ,param_type* array ,int len){    
// #define param_type int
    param_type * res=(param_type *)malloc(sizeof(param_type)* len);

    for(int i=0;i<len;i++){

        *res=f(array[i]);//bad
         res++;             //bad

    }
}

当我使用

param_type * x_array_map (param_type (*f)(param_type) ,param_type* array ,int len){
    // #define param_type int
    param_type * res=(param_type *)malloc(sizeof(param_type)* len);
    
    for(int i=0;i<len;i++){
        res[i]=f(array[i]);//good
    }
   }

这时候是ok的,为什么不能用res移动指针的方式?

阅读 2.8k
2 个回答

上一种用法出现什么问题了吗?把这个指针自增,回头free时不是还得减回来…

新手上路,请多包涵

你这个函数返回值是什么?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进