[問題] 指標陣列算size大小

看板C_and_CPP作者 (小那)時間14年前 (2010/05/02 18:08), 編輯推噓2(2019)
留言21則, 8人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 怎麼算出char *keytab[]的大小 題目原文: char *keytab[]={"break","case","char","continue","default","for","if","int"}; char **p=keytab; please use sizeof operator to decide the number of element of keytab array and define it as NKEYS. 希望得到的正確結果: 36 因為我想說 break case char continue default for if int 這些字元一共有36個 所以我猜答案是36 程式跑出來的錯誤結果: 32 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Dev-C++ Windows 有問題的code: (請善用置底文標色功能) #include <iostream>//III using namespace std; int main() { char *keytab[]={"break","case","char","continue","default","for","if","int"}; char **p=keytab; for (int i=0; i<8 ;i++) { cout<<keytab[i]<<endl; } int NKEYS; NKEYS = sizeof(keytab)/sizeof(char); cout<<NKEYS; cout<<sizeof(keytab); //32 system("pause"); return 0; } 補充說明: 我知道 sizeof(keytab); 是算出8個指標 8X4=32的意思 請問要怎麼用sizeof 去算出 一共使用了36個字元呢???? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.39.115

05/02 18:10, , 1F
你需要的是strlen吧
05/02 18:10, 1F

05/02 18:12, , 2F
36也是錯的
05/02 18:12, 2F

05/02 18:21, , 3F
可是老師考卷問的是用sizeof去算element of array
05/02 18:21, 3F

05/02 18:21, , 4F
我沒有什麼idea
05/02 18:21, 4F

05/02 18:38, , 5F
你再仔細看清楚老師要問什麼....
05/02 18:38, 5F

05/02 18:39, , 6F
老師給你的element of array答案是36嗎
05/02 18:39, 6F

05/02 20:34, , 7F
sizeof(keytab) / sizeof(char *)
05/02 20:34, 7F

05/02 20:35, , 8F
咦?我會錯義了…我比較喜歡上面的錯誤答案 @__@""
05/02 20:35, 8F

05/02 21:11, , 9F
strlen才是算字元數的,可以用迴圈累計所有字串.
05/02 21:11, 9F

05/03 13:18, , 10F
_countof (vc 上可用)
05/03 13:18, 10F

05/03 13:31, , 11F
沒有答案,我想應該是36吧 ~
05/03 13:31, 11F

05/03 13:34, , 12F
請問你為什麼會覺得是36呢?說說你的道理吧
05/03 13:34, 12F

05/03 13:35, , 13F
等一下我把題目打出來
05/03 13:35, 13F
※ 編輯: nana0130 來自: 140.116.39.115 (05/03 13:38)

05/03 13:43, , 14F
我把我的想法,修改在文章內容了>"<
05/03 13:43, 14F

05/03 13:43, , 15F
不曉得是我老闆出錯,還是真的可以用sizeof算????
05/03 13:43, 15F

05/03 13:44, , 16F
number of element of keytab => 應該是問有幾個字串?
05/03 13:44, 16F

05/03 13:46, , 17F
我支持 sizeof(keytab) / sizeof(char *) 這個答案
05/03 13:46, 17F

05/03 13:49, , 18F
是問字串喔???喔~~MY GOD
05/03 13:49, 18F

05/03 13:51, , 19F
我還有一題也不懂....我想貼出來問一下
05/03 13:51, 19F

05/03 14:06, , 20F
其實對於題意不清楚 最好的方法還是問老師吧
05/03 14:06, 20F

05/03 14:22, , 21F
嗯嗯,我覺得很迷惘~~QQ 好的我去問老師比較快 謝謝大家
05/03 14:22, 21F
文章代碼(AID): #1BtKyXjh (C_and_CPP)