注册 登录
编程论坛 C++教室

原谅我。。我真的捏不出来个题目。。。

guoyao333 发布于 2013-03-25 19:50, 827 次点击
程序代码:
#include <iostream>
using namespace std;


int *Inti()
{
    int *p;
    if(p=new int (5))
    return p;
    return NULL;
}

int main()
{
    int *o;
    int *q;
    q=o=Inti();
    cout<<o<<" "<<*o<<endl;
    delete q;
    cout<<o<<" "<<*o<<endl;
    system("


函数里面定义了指针p并通过new申请了内存。
p是个局部变量。
p申请的内存却在main函数里用的不亦乐乎。。
是new的功能还是说是返回指针的功能?
还有new和malloc()有什么区别呢?
还有。不违反作用域么。。
(虽然数据结构书里写的不亦乐乎,实际也可行,但搞不懂啊。。)
11 回复
#2
yuccn2013-03-25 22:11
代码是否不完整?
“p申请的内存却在main函数里用的不亦乐乎” 是什么意思?

还有new和malloc()有什么区别呢?
new 是运算符,而malloc 是函数
new 申请内存后会调用对象的构造函数,malloc 只是普通的申请内存

delete q;
     cout<<o<<" "<<*o<<endl
你delete了q了 还访问o?上他们是指向同一快内存的
#3
guoyao3332013-03-25 22:46
回复 2楼 yuccn
的确少了一点。。少了system("pause")和一个};
这段代码没什么意义。。
就是实验。。
函数里申请的空间可以在main函数里用。
函数里定义的变量却不能。。
是因为返回值么。。
#4
peach54602013-03-26 08:10
new和malloc是在堆上申请的资源
木有作用域限制的

有作用域限制的是栈上的资源
#5
rjsp2013-03-26 08:16
『p指向的内存』和『p本身』是两个不同体

另外,你的代码真垃圾,谁教的?有罪!
#6
guoyao3332013-03-26 11:15
回复 5楼 rjsp
感谢您的批评。。垃圾这点可以批评我。。但我觉得没有必要也没有资格来问候我的老师。。
但是啊。
我认为垃圾这个词还是少用的好。。
我是没关系。。但是万一有人难以接受是很惹人厌的。
#7
rjsp2013-03-26 12:59
以下是引用guoyao333在2013-3-26 11:15:55的发言:

感谢您的批评。。垃圾这点可以批评我。。但我觉得没有必要也没有资格来问候我的老师。。
但是啊。
我认为垃圾这个词还是少用的好。。
我是没关系。。但是万一有人难以接受是很惹人厌的。

为什么批评你?谁把你教成这样,谁就有罪。
恰如白纸一张,谁在上面乱涂乱画搞废了这张纸,我就批评谁。难道我不批评作恶的人,而去批评白纸本身?

对于“垃圾”这个词,或许你有更精准的描述,但这不是重点。重点是为什么“有人难以接受”?
“垃圾”描述的对象是代码,你可以不同意我对这段代码的定性,但这种定性本身是客观的,和写代码的人无关。
打个比方,有个货郎看到一捆柴火,习惯性地报出了估算总量20斤。
这时候左边跳出来一个人,怒道:“我辛辛苦苦砍柴,把斧子都砍缺口了,你这个货郎怎么可以说它才20斤?”
随后右边又跳出来一个人,怒道:“这柴是我仇家砍的,我和他不共戴天,你这个货郎怎么可以说它有20斤?”
货郎拿起柴火,用秤称了称,哭丧着说“两位大侠,这捆柴真的是20斤,不多不少呀!”

我说代码垃圾,如果真有人“难以接受”,这属于『受迫害狂心理』,是长时间自卑导致的反性格化自负,容不得任何外界批评。得去看心理医生,早期可以治好,我一个同学就是这样治好的。
#8
peach54602013-03-26 13:59
以下是引用rjsp在2013-3-26 12:59:47的发言:


为什么批评你?谁把你教成这样,谁就有罪。
恰如白纸一张,谁在上面乱涂乱画搞废了这张纸,我就批评谁。难道我不批评作恶的人,而去批评白纸本身?

对于“垃圾”这个词,或许你有更精准的描述,但这不是重点。重点是为什么“有人难以接受”?
“垃圾”描述的对象是代码,你可以不同意我对这段代码的定性,但这种定性本身是客观的,和写代码的人无关。
打个比方,有个货郎看到一捆柴火,习惯性地报出了估算总量20斤。
这时候左边跳出来一个人,怒道:“我辛辛苦苦砍柴,把斧子都砍缺口了,你这个货郎怎么可以说它才20斤?”
随后右边又跳出来一个人,怒道:“这柴是我仇家砍的,我和他不共戴天,你这个货郎怎么可以说它有20斤?”
货郎拿起柴火,用秤称了称,哭丧着说“两位大侠,这捆柴真的是20斤,不多不少呀!”

我说代码垃圾,如果真有人“难以接受”,这属于『受迫害狂心理』,是长时间自卑导致的反性格化自负,容不得任何外界批评。得去看心理医生,早期可以治好,我一个同学就是这样治好的。


人才呀...
#9
guoyao3332013-03-26 21:56
回复 7楼 rjsp
好吧。。长时间自卑而反性格自负我承认。。但绝对没有到需要去看心理医生的地步。。
既然性格使然。硬是去改变也难以收到成效。而且我现在过得还是挺自在的。
这段是我自己随手打出来的。。作用也仅仅是实验。
俗话说实验出真知。。要问意义真的一点也没有。
只是我的一个小小的疑惑。。
在程序里我绝不会这么瞎搞的。。
谢谢你。
我的确需要保持一下心态。。
很中肯。。嗯。
#10
wp2319572013-03-26 22:01
老师不一定总是对的
教科书也未必总对(很多童鞋说照书上一个字母都不差的敲得,但是连最基本的编译都无法通过)

一切都已实践为准
#11
玩出来的代码2013-03-27 15:13
回复 7楼 rjsp
我都不知道你为什么要批评他?或者你有什么资格来批评他?
LZ代码给了,虽然结构不好但对于他人来说阅读还是没问题的,LZ的问题也描述清楚了。你还有什么不清楚的?
LZ来问是侧重解决问题的,你来回答的是什么?
就如刚学会走路的小孩,在路上走着走着撞到你了,你会怎么做?去批评他走路不长眼睛啊,评击他父母不会教人?

对于“垃圾”这个词,或许你有更精准的描述,但这不是重点。重点是为什么“有人难以接受”?
“垃圾”描述的对象是代码,你可以不同意我对这段代码的定性,但这种定性本身是客观的,和写代码的人无关。
“这句话写的真没水平”。你会认为我在说这句话吗?你会认为是词语错误的组合造成了这"垃圾"句子的出现?
"难以接受"。为什么要接受?你是认为每个评论者都是正确的?

我说代码垃圾,如果真有人“难以接受”,这属于『受迫害狂心理』,是长时间自卑导致的反性格化自负,容不得任何外界批评,得去看心理医生
请对自己说的话负责。“我说代码垃圾”,我可以认为你这是以自我为中心吗?
就因为你一个同学是这样的你就下这样的结论?
#12
wp2319572013-03-27 15:14
关闭了吧   不喜欢看到不和谐的帖子
1