【发布时间】:2012-02-22 18:49:20
【问题描述】:
所以我在这个程序上苦苦挣扎,我试图找出如何使用 声明为 main 的指针数组,在递归函数中用于记忆数据,问题是 这里出现的是,如果它与单个指针的方法相同,那么结构类型呢? 通过引用将变量/数组传递给递归函数的最佳方法是什么?
#include <stdio.h>
#include <stdlib.h>
#define N 1
void f(int i,int j,int *cnt);
int j=0;
int main(int argc, char *argv[])
{
int *cnt=0;
f(0,++j,&cnt);
printf("------ %d ---- \n",cnt);
system("PAUSE");
return 0;
}
void f(int i,int j,int *cnt){
if(i>N){
printf("---if --- %d ---- %d \n",i,j);
(*cnt)++;
return;
}
(*cnt)++;
printf("---bg --- %d ---- %d \n",i,j);
f(i+1,++j,cnt);
f(i+1,++j,cnt);
}
我想知道的另一件事是递归函数如何处理 ++i 和 i++ 和 i+1 增量(当作为参数传递时),
【问题讨论】:
-
此代码无法编译。而且你还没有初始化
cnt指向任何内存。
标签: c pointers memory-leaks recursion