怎么在C++程序设计的子函数中为全局指针分配内存空间

怎么在C++程序设计的子函数中为全局指针分配内存空间,第1张

main()
{
int p;
add(p); //你看明白了就知道了
cout<<p<<'\n';//等于5
p++;//指向下一个char[1]
cout<<p<<'\n'; //等于2
}
BOOL add(int n)
{
p= new char[2];//申请char类型2个大小的数组 p指向这个数组
char i;
p=3;//数组char[0]等于3
p++;//指向下一个数组char[1]
p=2;//赋值
i=p;//
p--;//退回指向char[0]
p=p+i;//char[0]=char[0]+i;
return TRUE;
}

int p :一级指针,表示p所指向的地址里面存放的是一个int类型的值,声明p为指向整型数的指针,这时为这个指针分配了存储空间。但这时其中是随机数,我们称它为指向一个不确定的内存地址。

用户说的“直接p=5”,那么就会在一个无法预知的内存地址写入一个整型数5。这是不允许的,可能导致程序崩溃。

p=&a; 则是把已有的变量a的地址写入指针p,我们称使指针指向a 可以通过p对变量a正常 *** 作。

扩展资料:

指针:

指针的表现形式是地址,核心是指向关系指针,运算符“”的作用是按照指向关系访问所指向的对象.如果存在A指向B的指向关系,则A是B的地址,“A”表示通过这个指向关系间接访问B。

如果B的值也是一个指针,它指向C,则B是C的地址,“B”表示间接访问C,如果C是整型、实型或者结构体等类型的变量或者是存放这些类型的数据的数组元素,则B(即C的地址)是普通的指针,称为一级指针,用于存放一级指针的变量称为一级指针变量。

参考资料来源:百度百科-二级指针

指针所指对象的数据类型
,和前面的一起说明是指向对象的指针;
第二个是乘法运算;
(指针所指对象对的数据类型
)
这一句就是强制转换成对象的指针;
可以直接写成p=(char
)malloc(9),不过不建议用,推荐用
#define
size
9
……
……
……
p=(char
)malloc(size)
或者
const
int
p
=
9;
……
……
……
p=(char
)malloc(size)
这样你使用多次需要修改的话只用改动一个地点,避免遗漏,这种形式也便于记忆!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13377793.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-24
下一篇 2023-07-24

发表评论

登录后才能评论

评论列表(0条)

保存