使用memset加快二維陣列初始
一般方法是用雙迴圈來設定二維陣列的值
這裡使用memset來設定陣列初值
PS:
memset(matrix, 1, sizeof(matrix)); //會失敗
memset為字元填入的函式,整數由2或4個位元組(字元)組成
設定的值是0x01,但存入的值卻是0x0101,而導致錯誤的答案
而-1則是0xFF,存入的值是0xFFFF,不會影響答案
原始文章出處:http://jhengjyun.blogspot.tw/2010/02/cc-memset.html
這裡使用memset來設定陣列初值
#include <cstring>
const int X_SIZE = 60;
const int Y_SIZE = 30;
int matrix[X_SIZE][Y_SIZE];
inline void init_matrix() //使用inline加快
{
//設定陣列內的值全為-1
memset(matrix, -1, sizeof(matrix));
}
PS:
memset(matrix, 1, sizeof(matrix)); //會失敗
memset為字元填入的函式,整數由2或4個位元組(字元)組成
設定的值是0x01,但存入的值卻是0x0101,而導致錯誤的答案
而-1則是0xFF,存入的值是0xFFFF,不會影響答案
原始文章出處:http://jhengjyun.blogspot.tw/2010/02/cc-memset.html