[問題] 請問一下宣告struct裡array的問題

看板C_and_CPP (C/C++)作者 (Ian Kinsler break out!)時間13年前 (2012/08/23 19:24), 編輯推噓1(108)
留言9則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C 問題(Question): 我的問題是我想宣告struct裡面的array compiler卻出現 150 C:\Users\Administrator\Desktop\測試!.cpp expected primary-expression before '{' token 150 C:\Users\Administrator\Desktop\測試!.cpp expected `;' before '{' token 我的程式碼如下 請各位大大幫忙看一下 謝謝 int i; struct pageinfo { int sb; int sf[16]; }page[4]; for(i=0;i<n;i++) { page[i].sb = 0; page[i].sf = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; <---似乎是這句出問題 } 感覺是個小問題 可是我Debug了半小時還是解不了 也有去網路上找資料 還是無解 先謝謝各位的幫忙了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.43.236.76

08/23 19:28, , 1F
非法敘述.用 memset 吧。
08/23 19:28, 1F

08/23 19:39, , 2F
一般的陣列也不能這樣指定啊
08/23 19:39, 2F

08/23 21:21, , 3F
memset(page[i].sf,0,sizeof(int)*n); 一樓大大說的是這個
08/23 21:21, 3F

08/23 21:23, , 4F
寫錯了,裡面的n要改成16....XD
08/23 21:23, 4F

08/24 00:11, , 5F
直接 memset(&page[i], 0, sizeof(struct pageinfo)) 應
08/24 00:11, 5F

08/24 00:12, , 6F
該更快吧, 甚至全部只有一行memset,連for都可省
08/24 00:12, 6F

08/24 00:16, , 7F
另外要這樣用 { } 指定陣列內容, 只有初始值可以
08/24 00:16, 7F

08/24 00:32, , 8F
要省去for應該是要寫成memset(page,0,sizeof(page));
08/24 00:32, 8F

08/24 13:58, , 9F
structure initial http://ppt.cc/TMU7
08/24 13:58, 9F
文章代碼(AID): #1GDXBY7h (C_and_CPP)
文章代碼(AID): #1GDXBY7h (C_and_CPP)