| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 362 人关注过本帖
标题:new的问题?
收藏  订阅  推荐  打印
blueboy82006
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:1212
积分:12084
威望:16
来自:幻想世界
注册:2007-7-23

引用:
newyj 在 2008-10-9 22:17 的发言:

那我在 main函数中delete ptr 不知道 能否 释放掉
ptr可是局部变量哦...
main中不可见...

闭关修炼中!......
2008-10-9 22:19
newyj
Rank: 4
等级:高级会员
帖子:504
积分:5868
威望:2
注册:2008-1-4

不是说 它 是一直存在的吗?
char* ptr=new char[strlen(i)+strlen(j)+1];这句 要是这样写char* ptr=new char 函数也能 正确执行,为什么呢?
2008-10-9 22:25
blueboy82006
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:1212
积分:12084
威望:16
来自:幻想世界
注册:2007-7-23

引用:
newyj 在 2008-10-9 22:25 的发言:

不是说 它 是一直存在的吗?
char* ptr=new char[strlen(i)+strlen(j)+1];这句 要是这样写char* ptr=new char 函数也能 正确执行,为什么呢?
是strcpy();
运行时自动分配了足够的空间吧...
这个,这学的时候是不应该的啊!strcpy()此时应该是一个运行时错误的...

闭关修炼中!......
2008-10-9 22:32
newyj
Rank: 4
等级:高级会员
帖子:504
积分:5868
威望:2
注册:2008-1-4

但是 并没有 错误提示啊
2008-10-9 23:03
blueboy82006
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:1212
积分:12084
威望:16
来自:幻想世界
注册:2007-7-23
回复 14# newyj 的帖子

可能这样也行吧...
等我研究研究....

闭关修炼中!......
2008-10-9 23:32
song4
Rank: 12Rank: 12Rank: 12
等级:贵宾
帖子:1506
积分:15212
威望:38
注册:2006-3-25

char* ptr=new char[strlen(i)+strlen(j)+1]; //[]中的数 不管是多少都能正确输出,为什么? 甚至不定义为数组也能正确输出

头都大了  说什么我都没看明白
看我说的是不是你问的
你是char* ptr  所以返回的是个指针
而这个指针里放的是一个地址
然后你strcpy(ptr,i);
  strcat(ptr,j);
只是往这个地址里写东西  虽然你char* ptr  =new char;也对
但当你读取时人家系统按字符串读取 只看最后的/0在哪  人家也不知道你指针有多大
而你strcat(ptr,j);正好把/0放进去了
所以 你这个只申请一个CHAR空间的指针在(CHAR后面空间 没有人用的情况下)勉强可以通过运行的
是这么 说么?

我说自尊那 看起来或许可笑 但它至少支着我 试着不让我颠倒 活着 如果只是不甘寂静的喧嚣 那就咆哮吧 让每个人都听得到学习JAVA
2008-10-10 08:55
newyj
Rank: 4
等级:高级会员
帖子:504
积分:5868
威望:2
注册:2008-1-4

要是 char* ptr=new char 申请个 指针 指向char类型
再 strcpy(ptr,i);  strcat(ptr,j); 最后 我 再 flush 清 一下缓冲区 那输出的是什么呢?
2008-10-10 21:51
orangecy
Rank: 1
等级:新手上路
帖子:11
积分:224
来自:江苏
注册:2008-8-19

你不是想把Ij字符串放到ptr上吗,你用new分配的空间刚刚够 不论你的ij越大,new分配的空间越大,你的ptr容量越大。所以一直够用

没妞泡的日子里,生活像杯白开水;有妞泡的日子,生活像瓶敌敌畏
2008-10-12 09:45
共有 361 人关注过本帖
发新话题
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.053594 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved