N******n 发帖数: 3003 | 1 int main()
{
int (*a)[4]=new int[3][4];
for (i=0; i<=3;i++){
for (int j=0;j<=4;j++){
a[i][j]=i+j;
};
};
return 0;
}
编译过程中,查看a[i][j]的值都是0,1,2,比如在watch中看a,9,下面有9行,[0]...
[9],点开每一行,里面有4行,[0]...[3],他们的值都是0,1,2,-842150451.
但是output出来a[i][j]确实是i+j.
不知道为什么?
谢谢 |
m*********t 发帖数: 527 | 2 "编译过程中,查看a[i][j]的值都是0,1,2,比如在watch中看a,9,下面有9行,[0]...
[9],点开每一行,里面有4行,[0]...[3],他们的值都是0,1,2,-842150451.
什么叫“编译过程中” ?
另外,你这个程序是从源代码里拷出来的么? int i 没有定义, 而且数组越界。。。。 |
t*****n 发帖数: 4908 | 3 for (i=0; i<3;i++){
for (int j=0;j<4;j++){
【在 N******n 的大作中提到】 : int main() : { : int (*a)[4]=new int[3][4]; : for (i=0; i<=3;i++){ : for (int j=0;j<=4;j++){ : a[i][j]=i+j; : }; : }; : : return 0;
|
N******n 发帖数: 3003 | 4 我做了修改,就是在debugger 设置了断点。 看他里面的值,好像越界也没有任何错误
,而且值是一样的。
那个int i, 是我忘记写上了。
...
。。
【在 m*********t 的大作中提到】 : "编译过程中,查看a[i][j]的值都是0,1,2,比如在watch中看a,9,下面有9行,[0]... : [9],点开每一行,里面有4行,[0]...[3],他们的值都是0,1,2,-842150451. : 什么叫“编译过程中” ? : 另外,你这个程序是从源代码里拷出来的么? int i 没有定义, 而且数组越界。。。。
|
m*********t 发帖数: 527 | 5 断点在哪,看的时候 i, j 等于几? 你要是还没赋值那 a[i][j] 值可以是乱七八糟的
东西。
“像越界也没有任何错误”。。。。。。。。你要是喜欢
segmentation fault 大可以不在乎这些。
【在 N******n 的大作中提到】 : 我做了修改,就是在debugger 设置了断点。 看他里面的值,好像越界也没有任何错误 : ,而且值是一样的。 : 那个int i, 是我忘记写上了。 : : ... : 。。
|
N******n 发帖数: 3003 | 6 我就断在a[i][j]的后面,我删除了输出的部分。
谢谢
【在 m*********t 的大作中提到】 : 断点在哪,看的时候 i, j 等于几? 你要是还没赋值那 a[i][j] 值可以是乱七八糟的 : 东西。 : “像越界也没有任何错误”。。。。。。。。你要是喜欢 : segmentation fault 大可以不在乎这些。
|
r*g 发帖数: 3159 | 7 断在前面 单步执行 看是不是这一句被优化跳过去。
★ 发自iPhone App: ChineseWeb 7.8
【在 N******n 的大作中提到】 : 我就断在a[i][j]的后面,我删除了输出的部分。 : 谢谢
|