作者finalrecall (final)
看板C_and_CPP
標題[問題] new定義的array
時間Thu May 14 13:34:17 2009
比如說有兩個array
int c;
int *a=new int[c];
int *b=new int[c];
for(i=0;i<c;i++)
{
a[i]=0;
b[i]=0;
}
我在跑for迴圈時
他會還沒跑完就停下來 程式也沒有結束 就停住了
請問這是碰到什麼問題?
c大概3000多 但他只跑到900多就停住了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.8.9.189
1F:推 ledia:c 的值是什麼時候給的 ? 05/14 13:37
2F:→ jlovet:你真的是用int嗎,也許你是用什麼很大的struct? 05/14 14:46
3F:推 IamCoolKing:請問c的初始值是什麼? 在哪一行給定初始值? 05/14 14:50
4F:→ finalrecall:我有抓文件檔 在抓檔的時候給的 05/14 17:24
5F:→ finalrecall:在這個迴圈之前有用c去跑的迴圈都沒有問題 05/14 17:26
6F:→ finalrecall:補充一下 在我的程式裡面的C是抓一行就+1 算抓幾行 05/14 17:31
7F:→ finalrecall:初始值設為1 05/14 17:34
8F:→ finalrecall: 0 05/14 17:35
9F:推 ledia:那你的 a = new int[c]; 是在抓檔之前還是之後 ? 05/14 19:42
10F:→ finalrecall:是之前 05/14 20:47
11F:推 ledia:那麼那個時候的 c 值怎麼決定是多少? 05/14 21:33
12F:→ ledia:a = new int[c]; 配置多少是以執行到那邊的當下的 c 值而定 05/14 21:34
13F:→ ledia:之後 c 值的改變並不會讓 a 所配置到的空間跟著改變 05/14 21:34
14F:推 sunneo:其實這個關於變數隨著存取而改變的觀念我以前曾有過 05/14 22:06
15F:→ sunneo:我想那有點像是call by name或者Event的想法吧 05/14 22:07
16F:→ sunneo:在任一存取點的修正都要發出signal通知其他元件更新物件 05/14 22:08
17F:→ sunneo:現在想想 還真是胡來啊.. 05/14 22:08