如何给多维数组赋初值

简介: 如何给多维数组赋初值

如何给多维数组赋初值

问题提出:

十年前有人写如下代码:

char szData[6][10];
//...
memset(szData,0,6*10);

五年前,有人改了数组定义:

//char szData[6][10];
char szData[6][100];

前几天,我花了两天修改了一个Bug,错误的根源就在这。

问题分析:

由于数组的大小变小,使得只初始化数组的部分空间。

解决方法:

用sizeof函数取得数组空间。

具体代码如下:

class CData
{
 public:
  int x ;  
};
CTest33View::CTest33View()
{
 char szData[6][100];
 int iSize = sizeof(szData);
 memset(szData,0,iSize);
 CString strMess ;
 strMess.Format("/nchar占用%d个字节 char szData[6][100]占用%d个字节/n",sizeof(char), sizeof(szData));
 TRACE(strMess);
 CData data[100] ;
 iSize = sizeof(data);
 memset(data,0,iSize);
 strMess.Format("CData占用%d个字节 CData data[100]占用%d个字节/n",sizeof(CData), sizeof(data));
 TRACE(strMess);
}

输出区(OutPut)内容:

char占用1个字节 char szData[6][100]占用600个字节

CData占用4个字节 CData data[100]占用400个字节  


相关文章
|
4月前
|
编译器 C语言
多维数组名作函数参数
多维数组名作函数参数
23 0
|
4月前
|
存储 编译器 C语言
一维数组名作函数参数
一维数组名作函数参数
31 0
|
4月前
|
C语言
在引用数组元素时指针的运算
在引用数组元素时指针的运算
36 0
|
4月前
|
存储 编译器 C语言
数组元素作为函数实参
数组元素作为函数实参
25 0
|
4月前
|
数据处理 C语言 索引
数组元素作函数实参
数组元素作函数实参
42 0
|
4月前
|
C语言
C语言5🔥:复合赋值,递增递减运算符,局部变量与全局变量
C语言5🔥:复合赋值,递增递减运算符,局部变量与全局变量
50 0
|
4月前
|
存储 索引
数组元素做函数实参
在编程中,数组是一种常见的数据结构,用于存储多个相同类型的元素。函数则是执行特定任务的代码块,可以接收参数并返回结果。当我们将数组元素作为函数的实参时,可以将数组中的特定值传递给函数,以便在函数内部进行处理或计算。本文将介绍数组元素作为函数实参的概念,并附上相应的代码示例
42 0
|
存储 C语言
C工程中,全局变量要不要赋初值
C工程中,全局变量要不要赋初值
104 0
|
人工智能 Shell
将结果分别赋值给变量
将结果分别赋值给变量
60 0