16,472
社区成员
发帖
与我相关
我的任务
分享
下面两种方式来初始化结构体对象是否都可以?
memset时是否需要加&符号?
//方式一:
//定义结构体(一次至多保存10条记录)
typedef struct TTSDATA_2CONVERT TTSDATA_2CONVERT;
struct TTSDATA_2CONVERT
{
char username[10][50];
char sendid[10][50];
char content[10][100];
};
//创建并初始化结构体对象
TTSDATA_2CONVERT strTTS;
memset(&strTTS,0,sizeof(strTTS));
//方式二、
//定义结构体
typedef struct qq_number qq_number;
struct qq_number
{
char qqNumber[10];
char qqName[10];
};
//创建并初始化结构体对象(一次至多保存50条记录)
qq_number myQQNumber[50];
memset(&myQQNumber,0,sizeof(qq_number)*50);
//定义结构体
typedef struct qq_number qq_number;
struct qq_number
{
char qqNumber[10];
char qqName[10];
};
//创建并初始化结构体对象,一次只保存一条记录
qq_number myQQNumber;
//这时初始化是否要取地址符号呢???
//还有就是用sizeof(myQQNumber)和sizeof(qq_number)有区别么???
memset(myQQNumber,0,sizeof(myQQNumber));
//static变量默认都需要初始化么?
//.H头文件中定义结构体
static CALLINFO myUserInfo;
//.CPP文件为什么还要再次声明一下?
CALLINFO CTestDlg::myUserInfo;
typedef struct tagINISettings
{
char szDirectory[MAX_PATH];
char szRootBath[MAX_PATH];
int nNum;
char strIP[MAX_PATH][MAX_PATH];
tagINISettings()
{
memset(this , 0 , sizeof(tagINISettings));
}
} IniSettings;