2010年11月5日 星期五

strcpy除錯

作者: jasonkey123 (jasonkey123) 看板: C_and_CPP標題: [問題] strcpy除錯
時間: Thu Nov 27 22:01:34 2008

這是面試問到的問題,我覺得沒有任何錯誤.但卻寫說要更正錯誤@@
以下是code.
但我怎麼看都沒問題.
==========================
void test(char *p,int n)
{
p=(char*)malloc((char)sizeof(char)*n);
}
void main(void)

{
char *ptr;
test(ptr,100);
strcpy(ptr,"hello");
}

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.24.209
推 ianfang:malloc那邊 (char)sizeof 前面的(char)要去掉 11/27 22:04
→ jasonkey123:但我試過有沒有拿掉都ok 11/27 22:05
推 gozha:test(&ptr, 100); void test(char **p,int n) *p=.... 11/27 22:07
推 Biboy:我剛剛也看很久...樓上一說就懂了...看來我功力還不夠ˊˋ 11/27 22:12
→ gozha:我習慣是char* test(int n){return (char*)malloc(......);} 11/27 22:14
推 tsaiminghan:我連答案出來了,都要想半天才搞懂... 11/27 22:33
推 Clain66:3樓是正解 11/27 22:34
推 Biboy:可以問個問題嗎? sizeof前面的(char)是什麼作用? 11/27 22:35
推 gozha:那個無意義,但是當n也是char型態的時候會有問題 11/27 22:37
→ gozha:char就當作只是1byte的整數就好了 11/27 22:38
→ jasonkey123:終於知道了,3F,5F方法都可以 11/27 23:35
推 ledia:memory leak 11/28 01:09
→ ledia:access violation 11/28 01:10
推 OpenBigJue:其實沒有call by address,只有call by value/reference 11/28 03:09

沒有留言:

張貼留言