這是我在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