C语言大佬教你如何理解指针、数据与内存的关系

函数接受数组时,必须知道数组元素个数
函数里面是通过指针变量来接收数组的地址
指针变量无法确定指向的内容的大小
常量字符串内存空间由系统自动分配
在静态区里面分配 当程序结束才会释放
常量区<- 常量 const
静态区<- static 静态变量只会被定义一次 生命周期:从开始到结束
栈<- 局部变量 (离开作用域就自动收回)
堆<-自己申请的内存 malloc calloc realloc (必须自己释放)
动态分配内存:
1.为什么需要:存储的数据需要延长生命
2.一个指针变量需要存储数据,但变量本身只能存储地址,不能存储数据,需要分配内存空间来存储数据
如果使用指针变量接受数据 必须先为这个指针变量分配一片指向的内存空间
有内存空间才能存数据

使用头文件stdlib.h
使用malloc (memory alloc)申请内存空间

name = (char )malloc(10sizeof(char));
使用完毕必须手动释放内存 free(name);
使用realloc动态改变已经分配内存的大小 增加或者减少
name = (char )realloc(name,20sizeof(char));

QQ截图呀呀哎呀.png

exit(EXIT_FAILURE);退出之前必须将之前分配的内存释放掉

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 版权声明:本文为 gfson 原创文章,转载请注明出处。注:作者水平有限,文中如有不恰当之处,请予以指正,万分感谢...
    gfson阅读 8,614评论 0 6
  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 8,808评论 3 44
  • 概述 C 语言的数组是一种将标量数据聚集成更大数据类型的方式。其实现的方式非常简单,很容易翻译为机器代码。C 语言...
    seraphzxz阅读 3,882评论 0 51
  • 很多新学C语言的童鞋在用到动态内存分配的时候,对选择哪种分配函数及其有何区别搞不清楚,那么下文就认真的讲讲它们的种...
    Leon_Geo阅读 4,668评论 0 2
  • 一、内存分区:数据区+代码区+堆区+栈区1、数据区:分为静态数据区,全局变量区的存储是放在一块的。即static,...
    SuperDing阅读 4,894评论 1 1