線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1117
推到 Plurk!
推到 Facebook!

数组下标越界的问题!

答題得分者是:taishyang
zzmbeyond01
中階會員


發表:98
回覆:167
積分:53
註冊:2003-09-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-09 18:34:31 IP:218.70.xxx.xxx 未訂閱
各位大侠,下标越界了怎么解决呢? 将数组b的前k个元素添加到a数组之后。 谢谢!        源码如下:  
 
include "iostream.h"
#include "conio.h"    void Append(int [],int [],int&);    int main(int argc, char* argv[])
{int a[]={1,2,3,4,5};
 int b[]={6,7,8,9,0};
 int sizea=sizeof(a)/sizeof(int),sizeb=sizeof(b)/sizeof(int);
 int k;
 Append(a,b,k);
 for(int i=0;i>k;
int j=0;
int sizea=sizeof(a)/sizeof(int);
for(int i=sizea;i
初来,向各位大大们学习!    發表人 - zzmbeyond01 於 2003/11/09  19:41:08    發表人 - zzmbeyond01 於 2003/11/09  19:42:06
        
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-09 18:43:12 IP:140.135.xxx.xxx 未訂閱
zzmbeyond01您好: 請參考下面連結可以讓您的程式碼看起來更方便閱讀喔 < href="http://delphi.ktop.com.tw/topic.php?TOPIC_ID=39608">http://delphi.ktop.com.tw/topic.php?TOPIC_ID=39608 謝謝您的配合 順心
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-09 20:01:14 IP:140.135.xxx.xxx 未訂閱
zzmbeyond01您好: 您的問題在於一開始您的a向量的大小為5,b向量的大小也為5 所以您只能改變a[0]~a[4]的值,除非您一開始就為a向量宣告夠大的範圍 才能達到您的目的 發表人 -
zzmbeyond01
中階會員


發表:98
回覆:167
積分:53
註冊:2003-09-07

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-09 20:24:18 IP:218.70.xxx.xxx 未訂閱
taishyang你好: 我也想到了是 数组是静态数组的缘故,但是为甚么我往一个数组里添加一个 元素确可以正确执行呢?     
 
#include "iostream.h"
#include "conio.h"    void insert(int [],int&, int );
int main(int argc, char* argv[])
{int a[]={1,2,3,4,5,6,7,8,9};
 int x,n;
 n=sizeof(a)/sizeof(int);
 cin>>x;
 insert(a,n,x);
 for(int i=0;ix&&j>0)
{ a[j]=a[j-1];
  j--;
}
a[j]=x;
}
谢谢!
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-09 20:51:32 IP:140.135.xxx.xxx 未訂閱
zzmbeyond01您好: 請您試試下面的code
 int a[3]={1,2,3};
 a[10]=10;           //case1
 ShowMessage(a[10]);    // a[1000]=10;       //case2
// ShowMessage(a[1000]);
並參考下面連結RaynorPao版主的詳細解說 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=39520 您就會明白了
zzmbeyond01
中階會員


發表:98
回覆:167
積分:53
註冊:2003-09-07

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-11-09 22:33:25 IP:218.70.xxx.xxx 未訂閱
taishyang您好: 我想知道对于 int a[3]={1,2,3}; a[10]=10; //case1 ShowMessage(a[10]); 这样的例子,我如何让windows提示访问冲突呢? 感谢那篇文章,我要认真学习! 谢谢
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-11-09 22:47:31 IP:140.135.xxx.xxx 未訂閱
zzmbeyond01您好:
引言:这样的例子,我如何让windows提示访问冲突呢?
您把我問倒了< >,通常撰寫程式時我都會注意陣列的範圍< > 可能可以設定compiler中的Warnings來達到您的目的吧(抱歉,沒試過)< > 或是可以等有經驗的人回覆您 順心< >
zzmbeyond01
中階會員


發表:98
回覆:167
積分:53
註冊:2003-09-07

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-11-09 23:07:21 IP:218.70.xxx.xxx 未訂閱
谢谢你了!
系統時間:2024-06-01 23:51:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!