| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3462 人关注过本帖
标题:有关指针的问题
只看楼主 加入收藏
九天冥盟
Rank: 2
等 级:论坛游民
威 望:1
帖 子:77
专家分:20
注 册:2015-7-14
结帖率:36%
收藏
已结贴  问题点数:20 回复次数:7 
有关指针的问题
#include <iostream>
using namespace std;


int main()
{
    int *data,a[10];                   //声明一个指针,和数组a
    for(int i=0; i<10; i++)
         cin>>a[i];
    cout<<"input  out!"<<endl;
  
   for(int i=0; i<10; i++)            //将数组中的数据赋予指针;
       *(data+i)=a[i];  
   for(int i=0; i<10; i++)
       cout<<*(data+i)<<"\t";                    
    return  0;   
为什么不可以这样?拷贝构造函数中就有这样的语句,
搜索更多相关主题的帖子: include 
2016-05-15 00:50
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:5 
data是个野指针
2016-05-15 09:13
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:5 
data=&(a[i]);
for(i=1;i<10;i++)
  *(data+i)=a[i];

//试一下看这样行不行
2016-05-15 11:46
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:5 
原码中第二个注释错了,值怎么能给地址呢?就算编译器不报错,也不要这么做,而且原码的意思也不是注释的意思,是将值存入指向的内存块。rjsp版主已经说了那指针是野指针。你这个题目可能是想说明指针的作用的,主要是说明data+1偏移量的问题。data是int型指针,所以data+i是向后偏4i个字节,你这里要改,最好是new出一块内存,其他什么都不用变,应该就可以了,就是在循环前加一句data=new int [sizeof(int)*10];return之前记得释放内存就好了
2016-05-15 14:13
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:0 
不是4i,是8i,int应该是8位的
2016-05-15 14:16
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:0 
不是4i,是8i,int应该是8位的
2016-05-15 14:16
weidelong
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:31
专家分:158
注 册:2015-2-6
收藏
得分:5 
1.data使用前没有new分配
2.*(data+i)不用考虑sizeof(int)的问题
2016-05-15 15:00
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:0 
哦,对,搞混了,new 10个int型长度的内存块就够了
2016-05-15 15:07
快速回复:有关指针的问题
数据加载中...
 
   



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

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