![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
内存管理
文章平均质量分 85
haiabc1234
这个作者很懒,什么都没留下…
展开
-
C/C++语言程序的存储区域
问题提出:看输出结果,使用c1、c2、c3输出字符串都相同,但c1、c2、c3本身的内容不相同。9620588 1899312看出,完全是两块地方,推断9620588属于常量区,1899312属于栈区。1899324 1899312 1899300这三个数可以看出指针区域为栈区。#include "stdafx.h"#include #include using原创 2015-05-14 13:46:43 · 450 阅读 · 0 评论 -
char[]和char*的区别
1、char[]是一个数组定义,char*是指针定义(也称char[]为静态数组,char*为动态数组)。2、指针和数组的区别(1)指针和数组的分配数组是开辟一块连续的内存空间,数组本身的标识符(也就是通常所说的数组名)代表整个数组,可以使用sizeof来获得数组所占据内存空间的大小(注意,不是数组元素的个数,而是数组占据内存空间的大小,这是以字节为单位的)。举例如下:#inclu原创 2015-05-16 18:24:26 · 1921 阅读 · 1 评论 -
new和malloc的区别
一、malloc()函数1、void *malloc(size_t size);说明:malloc向系统申请分配指定size个字节的内存空间。如果分配成功则返回被分配内存的指针,分配失败则返回空指针NULL。void* 表示未确定类型的指针,C、C++规定,void* 类型可以强制转换为任何其他类型的指针。备注:void*表示未确定类型的指针,更明确的说是指申请内存空间时还不知道用原创 2015-05-16 18:32:22 · 188 阅读 · 0 评论 -
指针作为函数参数传递
任何编程语言的参数传递实际上都是在做传值调用,所谓的传指针,就是把指针指向者的地址传进函数。然后我们再通过这个地址进行操作,因为实参和形参同样都是一个地址的值,所以改变形参指向者的状态时,实参指针也能看到这种变化。这里区分一下静态内存,栈内存和动态分配的内存(堆内存)的区别:(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,sta原创 2015-05-16 18:17:55 · 295 阅读 · 0 评论 -
NULL指针、零指针、野指针
一、NULL指针、零指针1、NULL指针NULL是用来表示空指针常量。因此,可以用p = NULL;来使p成为一个空指针。C++标准库定义的NULL指针:/* Define NULL pointer value */#ifndef NULL#ifdef__cplusplus#defineNULL 0#else /* __cplusplus */#defi原创 2015-05-16 18:37:53 · 529 阅读 · 0 评论