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

为什么我的编译和链接都没错误的,可是一运行就停止工作的

张海锋 发布于 2012-12-23 23:24, 626 次点击
#include<iostream.h>
int main()
{
    int shu[5]={1,2,3,4,5},*p[5];
    for(int a=0;a<=4;a++)
    {
        *p[a]=shu[a];
        cout<<*p[a]<<'\t';
    }
    cout<<endl;
    return 0;
}
13 回复
#2
azzbcc2012-12-23 23:40
回复 楼主 张海锋
看到了,要new一下
#3
azzbcc2012-12-23 23:43
我发图肿么老失败。。。。

楼主你的指针数组没有空间,取指向是非法操作

要给他申请空间

或者指向已有空间 p[a]=&shu[a];
#4
music12732012-12-24 09:59
楼上正解,已测试,鉴定完毕,呵呵!
#5
mmmmmmmmmmmm2012-12-25 09:16
通过new delete来为指针申请 释放空间
#6
liu1378002012-12-25 17:38
你是想把数组中的数据给到指针去
正确的写法:p[a] = &shu[a];
(指针是存地址的,所以加上个&,取地址符)
#7
张海锋2012-12-25 20:18
回复 3楼 azzbcc
数组不是一个地址的吗?
#8
张海锋2012-12-25 20:20
回复 3楼 azzbcc
*p[a]=shu[a];怎么这里加上指针的标志*就是不对的啊
#9
张海锋2012-12-25 20:21
回复 6楼 liu137800
*p[a]=shu[a];这个*不用怎么就对啊,用了有什么关系的啊
#10
azzbcc2012-12-25 20:25
*p = XX
是把数据XX存到 指针p指向的空间里
p = XX
是把指针p赋值,该值应该为一地址
#11
张海锋2012-12-25 22:07
回复 10楼 azzbcc
谢谢哈
#12
张海锋2012-12-25 23:02
回复 10楼 azzbcc
顺便问下哈,就想上题一样P=shu[?]和指针*p=shu[?];第一个不是把数组赋值给指针P指向的内容吗?第二个不是把数组的值赋值给指针吗?为什么第二个就不对了呢?
#13
azzbcc2012-12-25 23:55
回复 12楼 张海锋
这个我在三楼说过了,你的指针是没有初始化的,系统随机给他一个值,而这个随机空间你是没有权利访问的,是非法操作

需要给这个指针申请一块空间
#14
无冬之夜2012-12-26 13:09
#include "stdafx.h"

#include<iostream>
int main()
{int x;
int y;
int z;
cout<<"请输入数字";
cin>>x;
cin>>y;
z=x+y;
cout<<z;
 system("pause");
   return 0;
}
这个是在vc++上运行的,我用的是vc++6.0中文企业简体版本!请问高手这是怎么回事啊?
然后运行时出现:rft.exe - 1 error(s), 0 warning(s)。可以帮忙吗?小弟初学,求不吝赐教!
1