标题:[求助][讨论]神秘消失的四个字节??
取消只看楼主
wtyj112
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2007-5-9
结帖率:85.71%
 问题点数:0 回复次数:3 
[求助][讨论]神秘消失的四个字节??

问题描述 一个程序目的是为了操作int数组 ,数组长度用const int max来申请空间保存,其中还申请其他一些变量,通过观察变量的地址发现在内存里总是这样排列的 先是其他变量->‘ ? ’-> 数组 -> const int max。
?这个地方神秘的总是少一个int量 就是4个字节,反复加入其他变量总是在按照上面的样式来的,总是神秘的少了4个字节 这4个字节是干嘛的??谁能帮我解惑!!
代码如下:

搜索更多相关主题的帖子: 字节 神秘 
2007-07-30 19:25
wtyj112
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2007-5-9
得分:0 

#include<iostream>
using namespace std;

int main()
{
//int b[3]={1,2,3};
// const int test = 99;
const int max=10;
// const int text1 = 11;

int a[max];
int *p=a;
int i,j,value1,value2;
int index1=0,index2;

int *p2=&i, *p3=&j, *p4=&value1, *p5=&value2, *p6=&index1, *p7=&index2;


cout<<"Enter the array number:";
for(i=0;i<max;i++)
{
cin>>*(p+i);
}
value1=*p;
value2=*p;
for(i=1;i<max;i++){
if(value1<*(p+i)){
value1=*(p+i);
index1=i;
}
}
for(j=1;j<max;j++){
if(value2>*(p+j)){
value2=*(p+j);
index2=j;
}
}
cout<<value1<<' '<<value2<<endl;
for(i=index1;i>0;i--){
*(p+i)=*(p+i-1);
*(p+i-1)=value1;
}
for(j=index2;j<max-1;j++){
*(p+j)=*(p+j+1);
*(p+j+1)=value2;
}

for(p=a;p<(a+max);p++)
cout<<*p<<' ';
cout<<endl;
cout <<&a<<' '/*<<&text1<<' '*/<<&max<</*' '<<&text<<' '<<&b<<*/' '<<p2<<' '<<p3<<' '<<p4<<' '<<p5<<' '<<p6<<' '<<p7;
cout<<endl;
cout <<*a<<' '/*<<text1<<' '*/<<max<</*' '<<text<<' '<<*b<<*/' '<<*p2<<' '<<*p3<<' '<<*p4<<' '<<*p5<<' '<<*p6<<' '<<*p7;
return 0;
}


计算机之路是痛苦并快乐着的!!
2007-07-30 19:26
wtyj112
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2007-5-9
得分:0 
我的输入数据是 2 3 4 5 6 7 8 9 1 2

计算机之路是痛苦并快乐着的!!
2007-07-30 19:27
wtyj112
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2007-5-9
得分:0 

晕 我粗心了!! 想了半天没注意那个指针,修改程序后重新运行 发现就是少算了那个指针!!
问题解决谢谢4楼提醒。


计算机之路是痛苦并快乐着的!!
2007-07-30 19:48



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




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

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