24小时热门版块排行榜    

查看: 1296  |  回复: 6

martialvv

铁虫 (初入文坛)

[求助] 请问下面这段c++小程序为什么不能运行 已有2人参与

int a = 10; float b = 20;

int *p=new int(a);
cout<<"the pointer to a is "<<*p<<endl;
delete p;
float *p = new float(b);
cout<<"the pointer to b is "<<*p<<endl;
delete p;

我已经把指向a的指针p删掉了,为什么不能再用p来命名指向b的指针呢?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

Boncourage!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zzy滴号

金虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
martialvv: 金币+15 2014-09-25 15:14:32
因为c++程序在编译时要建立一个符号表(可以认为是存储变量基本信息的表), 此时不会分析程序的运行情况, 只是单纯的按字符名字来处理. 所以你的代码中有两个p变量,但在符号表中只会存在一个与p相关的表项,编译器不能确定你到底要把p定义成什么变量,就报错了.
天道酬勤
2楼2014-09-24 22:18:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

martialvv

铁虫 (初入文坛)

引用回帖:
2楼: Originally posted by zzy滴号 at 2014-09-24 22:18:32
因为c++程序在编译时要建立一个符号表(可以认为是存储变量基本信息的表), 此时不会分析程序的运行情况, 只是单纯的按字符名字来处理. 所以你的代码中有两个p变量,但在符号表中只会存在一个与p相关的表项,编译器不能 ...

谢谢。那有没有方法从那个表里先把p删除,然后再用他定义别的变量?我是说比较简单易行的方法,比如只用一个运算符做这个事情。还是只能用不同的名字命名?
Boncourage!
3楼2014-09-25 02:08:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zzy滴号

金虫 (小有名气)

引用回帖:
3楼: Originally posted by martialvv at 2014-09-25 02:08:30
谢谢。那有没有方法从那个表里先把p删除,然后再用他定义别的变量?我是说比较简单易行的方法,比如只用一个运算符做这个事情。还是只能用不同的名字命名?...

应该没办法,因为C++编译器是一个独立的软件,一般人更改不了,而这个表是编译器产生的。
天道酬勤
4楼2014-09-25 12:36:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (文坛精英)


感谢参与,应助指数 +1
ben_ladeng: 金币+1, 谢谢指教 2014-10-05 10:57:19
本帖仅楼主可见
5楼2014-09-25 14:44:30
已阅   申请程序强帖   回复此楼   编辑   查看我的主页

安靖

银虫 (正式写手)

变量在声明的时候需要明确给出类型,而p在声明的时候是int类型。即使在释放内存后,其类型并不会改变。所以你再去把p指向float的时候就会出问题
6楼2014-09-25 16:31:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

人走茶不凉

银虫 (职业作家)

这样也能编译过去?
7楼2014-12-03 11:04:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 martialvv 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[博后之家] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 2JOx3r2CYEgw 2026-08-22 5/250 2026-08-23 15:18 by KM5EcsNQRBPn
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 2JOx3r2CYEgw 2026-08-21 6/300 2026-08-23 14:21 by KM5EcsNQRBPn
[基金申请] 什么时候开奖? +9 CrisMessi 2026-08-18 10/500 2026-08-23 12:03 by 丶昵称占用
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 2JOx3r2CYEgw 2026-08-21 10/500 2026-08-23 07:17 by OEbVnUOu01ol
[论文投稿] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 2JOx3r2CYEgw 2026-08-22 4/200 2026-08-23 04:04 by OEbVnUOu01ol
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 2JOx3r2CYEgw 2026-08-22 7/350 2026-08-23 03:55 by OEbVnUOu01ol
[论文投稿] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 QTy3jDtz1uLt 2026-08-21 9/450 2026-08-23 03:04 by OEbVnUOu01ol
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 QTy3jDtz1uLt 2026-08-21 11/550 2026-08-23 02:55 by OEbVnUOu01ol
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 DpSrDtM079iu 2026-08-22 3/150 2026-08-23 00:55 by OEbVnUOu01ol
[基金申请] 93BebMhtakh前后11位开头都是大写 +7 且听虎啸 2026-08-17 8/400 2026-08-22 21:55 by 医学老男孩
[基金申请] 范进中举一文的中心思想 +3 zjuhero 2026-08-22 4/200 2026-08-22 20:02 by mycsru
[基金申请] filecode,4个jtjc了 +13 ziyangfang 2026-08-19 16/800 2026-08-22 17:08 by WH3796
[教师之家] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 2JOx3r2CYEgw 2026-08-21 4/200 2026-08-22 16:52 by sunzitan
[基金申请] 今天基金会出结果吗?20260819 +16 kkkl_v 2026-08-19 17/850 2026-08-22 16:12 by 阿布Abu
[基金申请] 今日不放榜?网传国自然预计 8 月 27 日可查结果 +16 医学老男孩 2026-08-20 20/1000 2026-08-21 21:13 by Ldrop2023
[基金申请] 时间戳又变了 +13 wuchongjun 2026-08-20 19/950 2026-08-21 17:21 by 紫杉醇
[基金申请] 今天放榜没戏了吧 +9 yuleib84 2026-08-19 11/550 2026-08-21 10:06 by gltch
[基金申请] 今天系统多次维护,明天很可能放榜! +10 zju2000 2026-08-16 11/550 2026-08-20 20:02 by cl479861084
[基金申请] 朋友圈看到的 +6 wangzilk 2026-08-18 8/400 2026-08-19 10:55 by Haru815
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
信息提示
请填处理意见