2 qq 29650681 qq_29650681 于 2016.04.16 09:21 提问

c问题,什么是申请动态内存空间,

看图,那个前一个括号里的int*什么意思,然后整体是什么意思图片

4个回答

caozhy
caozhy   Ds   Rxr 2016.04.16 09:38

申请动态空间就是在程序运行的时候分配内存空间,用new(C++形式)和malloc(C形式)等。区别于静态空间,后者需要的内存大小在程序编译的时候就能确定下来。
动态空间分配在堆内存上。它的好处是按需使用,用多少申请多少。不过特别要注意释放问题,以免造成内存泄漏。

CSDNXIAOD
CSDNXIAOD   2016.04.16 09:32

二维数组,结构体动态申请内存空间
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Solo95
Solo95   2016.04.16 09:41

上述的声明变量方法只能用在你要储存的数据大小已经确定。但如果你不确定要存储的数据的大小,或者在程序执行的时候需要动态的改变数据的大小,就需要用到malloc函数了。它会在内存中申请一段连续的空间,以便你进行存储和扩充。
ptr = (int *)malloc(10*sizeof(int))
这段代码申请了10个int大小的内存空间,前面已经说到,不同编译器int取的大小是不同的,所以用sizeof运算符来计算在当前编译器中int的大小。而(int *) 则做了一个强制类型转换,将申请到的空间的指针转换成int类型。

Solo95
Solo95   2016.04.16 09:32


比如说```int a",程序运行时,会在内存中申请一个固定大小的内存空间来储存,按照编译器执行的标准不同,int类型的数据占不同的字节,我们以int占2个
字节为例,这段代码会在内存中申请两个字节的空间,用来储存a的值。这样做的缺点是,a的大小已经固定,不能再次扩充,只能储存两个字节的int数据。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!