作者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