首页 > 代码库 > 指针的数组
指针的数组
前言:上一篇,提到了栈和堆,想必你也清楚了栈和堆的区别,现在 通过指针的数组来看一下,指针是如何操作栈和堆的。
栈里面的数组:
<span style="font-size:18px;">int a[10]; //这个空间实在栈内存中申请的 int *p =NULL: p =a; //a是数组的首地住所以可以直接赋值给指针p p[0]=10; //就等同于a[0]=10;</span>
这个是堆里面的数组:
<span style="font-size:18px;">int *a = NULL; a=(int *) malloc(10*sizeof(int)); //申请10个大小的int空间,这个空间是在堆内存里申请的 if(NULL != a) { for(int i=0;i<10;i++) a[i]=i+1;//给数组赋值 } else { printf("没有申请成功") } free(a);</span>
这里值得一提的是,malloc()函数返回值 是 void * (任意类型的指针) 这里我们的a是int型指针,所以我们需要强制类型转换,就是在前面加上(int*)、另外申请 (new/malloc)出来的对象,都要判断一下是否为null,这样是一个好习惯,并且在使用完后要free()释放掉它、
free()函数的使用必须包含 #include<stdlib.h>头文件
嘿嘿,指针目前也不需要学那么深,一点一点来,因为数据结构中指针用也就这么多。
指针的数组
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。