免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1750 | 回复: 7
打印 上一主题 下一主题

请问c++中指针的使用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-31 17:03 |只看该作者 |倒序浏览
小弟在c++中定义了一个指针不能用,请问这是为什么(VC编译器)?
struct stu
{
     int num;
     stu *next;
};
void main()
{
     stu *p;
     p->;num = 1;
     cout<<p->;num<<endl;
}
在编译时出现warning:
local variable 'p' used without having been initialized
请问这是为什么?谢谢!!!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-12-31 17:23 |只看该作者

请问c++中指针的使用

你的指针指向哪里?
编译信息说得已经很清楚了。

论坛徽章:
0
3 [报告]
发表于 2003-12-31 19:41 |只看该作者

请问c++中指针的使用

原帖由 "美丽心情" 发表:
小弟在c++中定义了一个指针不能用,请问这是为什么(VC编译器)?
struct stu
{
     int num;
     stu *next;———————未初始化,指针任意指着。
};
void main()
{
     stu *p;
     p->;num = 1;
     cout<<p->;num<<en..........

论坛徽章:
0
4 [报告]
发表于 2003-12-31 21:31 |只看该作者

请问c++中指针的使用

stu *p = new stu;
....

delete p;

论坛徽章:
0
5 [报告]
发表于 2004-01-01 19:43 |只看该作者

请问c++中指针的使用

给指针赋个值九ok了!

论坛徽章:
0
6 [报告]
发表于 2004-01-01 22:53 |只看该作者

请问c++中指针的使用

呵呵,指针没有初始化怎么能用呢

论坛徽章:
0
7 [报告]
发表于 2004-01-02 16:01 |只看该作者

请问c++中指针的使用

其实,这个问题是新手经常碰到的问题。因为,你定义了一个指针p,但没有给他一个空间,这样他就要乱来了,随便乱指一块内存,这有可能是系统保留的内存区。可以new一下。
这也叫“野指针”

论坛徽章:
0
8 [报告]
发表于 2004-01-02 17:04 |只看该作者

请问c++中指针的使用

栈更加靠近CPU,属于短小精悍的地方.

如一段代码中,一个函数在:
运行前,系统会在栈中为它分配内存,
运行中,它会使用它在栈中的内存,
运行完后,它失去了它的生存域,系统会释放它在栈中的内存.

因为栈空间是很宝贵的.


堆就是一大堆内存,离系统远了,系统也不怎么管了.
随便哪个都可以用new在堆上开一块内存用.
有道德的人在堆上用了一块地方后,会把那块地方还给堆才走.
不过总有很多白痴用完堆上的一块地方,不以为然,大大劣劣的走了,
招呼也不打一个.系统也不知道那儿已经没人用了,仍然给他留作.


还有一种象猴子一样的人,
先到栈上去占一小块地方,随便在堆上又占了一大块,
他把堆上那一大块的地址记下来,放到栈的一小块中.
当系统要回他占的栈中的地方时,他又没有及时记下栈中的堆地址,
栈这颗芝麻失去后,他就丢了堆上的那一大托西瓜.

 
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP