Memset一般都是按字节进行赋值,都是给字符型数组赋初值。给字符型数组赋值的知识及问题可以见百度百科:http://baike.baidu.com/view/982208.htm。我们主要讲解给非字符型数组如int的一维或二维数组初始化为0的操作。需要的头文件:
一维数组赋值0:
int a[5]; memset(a,0,5*sizeof(int));
二维数组赋值0:
int a[4][4]; cout << sizeof(a) << endl; // 对二维数组赋值0操作,对于动态二维数组不能这样处理 memset(a, 0, sizeof(a));
动态二维数组赋值0:
long **F = new long*[height];
int i,j;
for(i = 0; i < height; i++)
{
F[i] = new long[allStates];
memset(F[i], 0, sizeof(long)*allStates); // 二维动态数组可以这样初始化
}