牛客 题库 6 堆栈

本文通过一道牛客题库中的题目,解析C++中指针、常量字符串以及堆栈内存的使用。指出p1和p2指针在栈中,常量字符串在常量区,malloc分配的内存位于堆区,并讨论了堆和栈的生长方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.请看一下这一段C++代码,如果编译后程序在windows下运行,则一下说话正确的是?

  题目网址:点击打开链接

char*p1 = “123456”;
char*p2 = (char*)malloc(10);

解答:选AC

正确的解释为:

1.p1和p2都是指针,而指针本身是存在栈中的。

2.“123456”是常量字符串,本身存放在常量区,指针p1中存放的是 “123456”在常量区中的地址指针p1本身存 放在栈区。

3.malloc从堆区分配了10个字节的内存区域,并把这块内存区域的首地址赋给了指针p2,即指针p2中存放是只是 一个指向堆区的地址,而指针p2本身是存放在栈区。所以p2指向的10个字节内存是存放在堆中的。

4.生长方向:对于堆来讲,生长方向是向上的,也就是向着内存地址增加的方向;对于栈来讲,他的生长方向是向 下的,是向着内存地址减小的方向增长。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值