标题:软件被系统警告,求高手指点!!!!
只看楼主
大虚无
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-8-23
结帖率:0
已结贴  问题点数:20 回复次数:8 
软件被系统警告,求高手指点!!!!
今天我本想做一款恶搞软件,软件成功生成,但运行时却被系统警告,并且编译器显示程序触发断点。
这是代码:
#include <iostream>
using namespace std;
class w{
int we;
public:
int address(){
we=1;int *q;
while(we<=10){cout<<q<<endl;q++;we++;}return 0;}};
int main(){
cout<<"1 world address of all"<<endl<<"2 address of fight"<<endl<<"3 address of all human"<<endl<<"4 exit"<<endl;
int i=1;while(i>=0){
int a;cin>>a;
if(a==1) {w b;b.address();}
if(a==2) {w b;b.address();}
if(a==3) {w b;b.address();}
if(a==4) break;}
return 0;}
求助!!!!
搜索更多相关主题的帖子: address include public return 编译器 
2013-09-26 13:03
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
得分:10 
class w
{
    int we;
public:
    int address()
    {
        we=1;
       int *q;
        while(we<=10)
        {
            cout<<q<<endl;//q都没有赋初值就在这里用着呢,看得的只想抽你,不赋初值输出的是一段内存地址。
            q++;
//很容易引起内存泄露
            we++;
        }
        return 0;
    }
};

♂ 死后定当长眠,生前何须久睡。♀
2013-09-26 13:18
大虚无
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-8-23
得分:0 
回复 2楼 303770957
本来就是一款恶搞程序,就是想随机输出10个地址,这个并不是问题,将int*q;扔进private中,编译运行就没任何问题,也没警告,将这句话扔进函数中就出警告了,而且,不是说数据生命只是函数这一端里吗,函数结束他就被吊销了吗?函数从新调用时,数据会被重新定义吗?,为啥我不管系统警告强行执行后,无论我输入什么,q指向的地址都没变过,好像q一直活着一样,大神知道怎么回事吗?
2013-09-26 13:30
西安郑鑫
Rank: 7Rank: 7Rank: 7
来 自:陕西
等 级:黑侠
帖 子:163
专家分:624
注 册:2013-9-26
得分:10 
LZ以后贴代码也把缩进贴上啊,看得我也想抽你。我虽然不是高手,也给你提个小建议哈,成员函数的实现最好放到类外面。
收到的鲜花
  • rjsp2013-09-26 16:48 送鲜花  3朵   附言:忠言逆耳,故其诚可嘉

Hello World!------鑫花璐放
2013-09-26 16:28
西安郑鑫
Rank: 7Rank: 7Rank: 7
来 自:陕西
等 级:黑侠
帖 子:163
专家分:624
注 册:2013-9-26
得分:0 
程序代码:
#include<iostream>
using namespace std;
class Test
{
public:
    show();
};
//成员函数实现
Test::show()
{
    int i = 0;
    int *p;
    for(i=0; i<5; ++i)
    {
        cout << p << endl;
    }
}

int main()
{
    Test haha;
    haha.show();
    return 0;
}

输出的5次结果都是同一个地址

我想了想,你说的是变量的生命周期在函数中吧,这个是指针,指针本身占内存,在整个程序中不会自动改变值得吧。

Hello World!------鑫花璐放
2013-09-26 16:48
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
得分:0 
回复 5楼 西安郑鑫
你没有移动指针当然是一样的了,楼主的程序进行了指针的移动操作了。

♂ 死后定当长眠,生前何须久睡。♀
2013-09-26 16:57
大虚无
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-8-23
得分:0 
回复 6楼 303770957
那楼上的各位,请问如何做到每次输出的地址是随机的?
2013-09-26 17:41
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
得分:0 
那你产生个随机整数让指针按照这个整数随机移动。

♂ 死后定当长眠,生前何须久睡。♀
2013-09-26 20:21
大虚无
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-8-23
得分:0 
回复 8楼 303770957
如何产生随机整数?能否用实际代码指点一下?
2013-09-26 22:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-421119-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.057209 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved