![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++学习笔记
C/C++基础学习笔记
qq_36794241
wo jiu shi
展开
-
C语言中的静态和动态开辟内存的对比
其中realloc是在原先内存空间上的再扩展,它存在两种情况:①在原有的内存上追加,此时arr和arr_new指针存储的内存地址一样。②如果新开辟的空间过大,无法在原有的基础上扩展,会copy原有的空间到新开辟的空间中,并且释放原由的内存空间;这种情况下arr和arr_new的内存地址是不一样的。方法执行会入栈,执行结束出栈,在此过程中会涉及到变量(别名)在内存中的存储和销毁;C语言中程序员操作比较频繁的是栈空间和堆空间。原创 2023-04-21 11:03:47 · 94 阅读 · 0 评论 -
C语言指针
分析:malloc在堆内存中开辟空间后将堆空间的地址返回,由于arr属于指针变量,所以它存储的是malloc开辟的堆地址,同时此变量又有它对应的内存地址;&arr=此变量在栈中的内存地址(存储值的内存地址);由于没有释放堆空间,所有每次开辟获取到的地址都不一样(arr),而由于arr变量名没有变,所有它对应的内存地址也没有变。指针即地址,内存空间被地址划分,内存中的内容均可以使用地址来表示,找到地址就可以找到内存中存放的内容。分析:num打印它在内存中存储的值,&num打印存储此变量值的内存地址。原创 2023-04-20 18:43:36 · 43 阅读 · 1 评论