这是我在C++编写代码分段故障初始化INT **
int** a;
try{
a = new int*[m];
for(int i = 0; i<m;i++)
a[i] = new int[n];
}
... 现在我初始化上述使用循环如下:
for(int i = 0; i<m; i++)
for(int j = 0; i<n; j++)
a[i][j] = 0;
我想提高性能,因此认为使用memset是个好主意。所以修改我的代码使用memset而不是for循环如下:
memset(a, 0, sizeof(a[0][0]) * m * n);
但我得到分段错误执行此操作。任何人都可以帮我弄清楚我做错了什么吗?
你是否在代码的任何地方为“a”分配内存? – 2013-03-22 18:59:11
对不起,我错过了添加内存分配。 'a = new int * [m]; for(int i = 0; i
user2175966
2013-03-22 19:03:44
好的,现在问题很明显 - 增加了一个答案。 – 2013-03-22 19:08:57