c的指针函数

C语言里面,在函数内部使用指针的时候,必须要给指针指针在声明的时候,赋值,分配内存,不然编译器是不会给指针分配内存的,以后给指针赋值的时候,也会出错。比如


#include 
#include 
int *find(int n) {
     int *pt  = malloc(sizeof(int));
	 *pt = n + n;
	 return (pt);
 }

 int main(void)
 {
     int *p ;
     int m;
     scanf("%d",&m);
     p=find(m);
	 printf("%d\n"  , *p);
     return 0;
 }
 

在指针函数find里面,如果写成 int *pt; 这样就会出现问题,因为如果不初始化,编辑器是不会给 pt指针分配内存的,不过,main函数里面的 int *p; 即使不初始化也是可以的,不会出现没内存的情况,我想归根结底,在与系统处理find和main的时候,机制是不同的,main是静态函数,find却要放到栈里面

Leave a comment

Your email address will not be published.

*