对于一道简单的二维数组的问题,不想却遇到了大麻烦。
最后经过指点,才知道:
int
** a=(
int
** )
calloc
(m,
sizeof
(
int
*));
int
** a=(
int
** )
calloc
(m,
sizeof
(
int
));
这两句话在32位和64位下大有问题!
就因为写的第二句,在OJ上一直RE!查来查去没有注意到这一点,因为在32位和64位下int* 和 int空间是不一样的,后者可能会产生数组越界!
对于一道简单的二维数组的问题,不想却遇到了大麻烦。
最后经过指点,才知道:
int
** a=(
int
** )
calloc
(m,
sizeof
(
int
*));
int
** a=(
int
** )
calloc
(m,
sizeof
(
int
));
这两句话在32位和64位下大有问题!
就因为写的第二句,在OJ上一直RE!查来查去没有注意到这一点,因为在32位和64位下int* 和 int空间是不一样的,后者可能会产生数组越界!