[問題] 請問一下用memset初始化struct的問題

看板C_and_CPP (C/C++)作者 (雞卷)時間16年前 (2009/12/14 19:01), 編輯推噓2(207)
留言9則, 4人參與, 最新討論串1/1
typedef struct { int iAge; }s_Test, *sp_Test; int main(void) { s_Test sTest; sp_Test spTest; memset(&sTest,0,sizeof(s_Test));//OK memset(spTest,0,sizeof(s_Test));//FAIL sTest.iAge=999; sptTest->iAge=1000; cout << sTest.iAge << endl;//OK cout << sptTest->iAge << endl;//FAIL system("pause"); return 0; } 因為memset是定義成這樣 void * memset ( void * ptr, int value, size_t num ); 那如果是一個 struct pointer 的話,該怎麼用memset初始化呢? -- 跟我同個年代看球的人 有兩個最讓我們覺得惋惜 一個叫Grant Hill 一個叫Anfernee Hardaway -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.249.2.10

12/14 19:06, , 1F
sp_Test spTest = &sTest; 要先讓它指向一個合法的空間
12/14 19:06, 1F

12/14 19:07, , 2F
參看置底文十誡第五
12/14 19:07, 2F

12/14 19:09, , 3F
sp_Test只是一個pointer, 要初始化為0的方法其實是
12/14 19:09, 3F

12/14 19:09, , 4F
sp_Test = NULL; // XD
12/14 19:09, 4F

12/14 19:10, , 5F
memset(spTest,0,sizeof(sp_Test)); // 應該也行XD
12/14 19:10, 5F

12/14 19:10, , 6F
memset(&spTest,0,sizeof(sp_Test)); // 這個才對Orz
12/14 19:10, 6F

12/14 19:11, , 7F
不過, 1~2F j大說的還是重點, 指標的用法請注意:)
12/14 19:11, 7F

12/14 21:24, , 8F
sizeof(sp_Test) ??
12/14 21:24, 8F

12/14 21:57, , 9F
sizeof(sp_Test) 就是看 sp_Test 型別的大小, compile time
12/14 21:57, 9F
文章代碼(AID): #1B9XiJ8_ (C_and_CPP)
文章代碼(AID): #1B9XiJ8_ (C_and_CPP)