作家
登录

带你了解数据结构的定义和简介

作者: 来源: 2017-12-12 13:54:16 阅读 我要评论

表示将体系分派的 50 个字节的第一个字节的地址转化为 int 类型的地址,精确的说是转化为 4 个一组的地址的首地址,

如许 p 就指向了第一个四个字节··· p+i 就指向了第 i+1 个四个字节,p[0],p[i]也就分别是第一个,第i+1个元素。

  1. double *p = (double *)malloc(80); 

表示将体系分派的 80 个字节的第一个字节的地址转化为 double 类型的地址,精确的说是转化为 8 个一组的地址的首地址,

释放 p 所指向的内存,而不是释放 p 本身所占用的内存

代码示例如下:

  1. void test2(void)  
  2.  
  3. int len;  
  4. printf(“请输入你要动态创建的数组长度:”);  
  5. scanf(“%d”,&len);  
  6. int *pArr = (int *)malloc(len); // 动态创建数组  
  7. *pArr = 4; // 相当于 a[0] = 4; 这里 pArr 就等于数组首地址,等于数组名  
  8. pArr[2] = 5; // 相当于 a[2] = 5;  
  9. printf("pArr[0] = %d \npArr[2] = %d\n",pArr[0],pArr[2]);  
  10. free(pArr); // 应用完毕,释放对应的数组空间  

跨函数应用内存

在函数内部分派的局部变量,在函数调用完成之后就会被体系收受接收,其内存也挥蓰掉。然则法度榜样中经常须要定义一块内存,当我们用完之后再会收受接收。如 OC 说话中对象。所以须要保存住分派的内存,应当用动态分派内存,当用完之后再手动释放。这也是C说话的一个不足之处:内存须要我们手动创建和手动释放,这也是 OC 说话在开辟 iOS 法度榜样时刻,我们所讲的MRC。【苹不雅也发清楚明了这个不足,于 iOS 5 的时刻推出了ARC 】

下面是一个跨函数应用内存的例子:

  1. // 这个例子已经异常有面向对象的味道了  
  2. typedef struct Student{ // 自定义 student 构造体  
  3. int age;  
  4. char * name 
  5. }myStudent;  
  6. myStudent * createStudent(void); // 创建 student  
  7. void showStudent(myStudent *); // 输出 student  
  8. int main(void) {  
  9. myStudent *p = createStudent(); // 创建 student  
  10. showStudent(p); // 输出 student  
  11. return 0;  
  12.  
  13. myStudent * createStudent(void)  
  14.  
  15. myStudent p = (myStudent )malloc(sizeof(myStudent));  
  16. p->age = 20;  
  17. p->name = “xiaoyou”;  
  18. return p;  
  19.  
  20. void showStudent(myStudent *p)  
  21.  
  22. printf(“student.age = %d \nstudent.

      推荐阅读

      央妈出手 银行业统一APP“云闪付”发布:管理所有银行账户

    开辟者大年夜赛路演 | 12月16日,技巧立异,北京不见不散日前,中国银联联袂贸易银行、付出机构等家当各方合营宣布银行业同一APP“云闪付”。 大年夜家经由过程这一APP即可绑定和治>>>详细阅读


    本文标题:带你了解数据结构的定义和简介

    地址:http://www.17bianji.com/lsqh/39702.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)