Re: [問題] 關於引用副程式與memory的問題
※ 引述《Is5566 (5566Is)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: VC
: 問題(Question):
: 最近遇到一些C++面試時的問題,但自己仍找不出問題的地方
: 想請教前輩們下面問題的解答,謝謝
: 1.下面的程式,紅色是自己覺得有問題修改的地方,但不知道是否還有錯誤?
: #define PI 3.14
: doule AREA_CAL_IRQHANDLER(double radius)
: {
: double area = PI*radius*radius;
: printf(“\nArea=%f”, area);
: return area; (此行應該改return 0;)
應該是不用改....就讓他回傳面積吧
: }
: 2.想請問下面function在做什麼動作跟如果有問題的話會發生在哪?
: int main ()
: {
: int i,n;
: char * buffer;
: printf ("How long do you want the string? ");
: scanf ("%d", &i);
: buffer = (char*) malloc (i+1);
: if (buffer==NULL) exit (1);
: (如果在這exit,上面叫的memory不會被free?)
:
: if(i>1000) return 1;
你都這麼講了就把這行移到malloc之前吧
: for (n=0; n<i; n++)
: buffer[n]=rand()%26+'a';
: buffer[i]='\0';
: printf ("Random string: %s\n",buffer);
: free (buffer);
: return 0;
: }
: 3.想請問該行會在哪裡出問題?
: struct S {
: int i;
: int *p;
: };
: main() (少加上int main()?)
: {
: S s;
: int *p = &s.i;
: p[0] = 4;
: p[1] = 3;
p[1] 位置為指標,強迫塞入內存位置3似乎沒甚麼意義
: s.p = p; (這裡指的p值似乎有問題?)
這邊s.p位址指到s.i,應該是沒問題
: s.p[1] = 1;
又塞了內存位置1給s.p
: s.p[0] = 2;
塞值到內存位置1, 這樣不行喔, OS會生氣
: }
引言太多...只好多偷點p幣
╮(╯◇╰)╭ ╮(╯◇╰)╭ ╮(╯◇╰)╭ ╮(╯◇╰)╭ ╮(╯◇╰)╭
--
我來當p幣小偷的...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.34.231.12
※ 編輯: olozil 來自: 114.34.231.12 (06/26 00:14)
※ 編輯: olozil 來自: 114.34.231.12 (06/26 00:14)
→
06/26 05:20, , 1F
06/26 05:20, 1F
推
06/27 00:21, , 2F
06/27 00:21, 2F
→
06/27 00:44, , 3F
06/27 00:44, 3F
推
06/27 00:57, , 4F
06/27 00:57, 4F
推
06/27 01:29, , 5F
06/27 01:29, 5F
→
06/27 01:30, , 6F
06/27 01:30, 6F
→
06/27 01:49, , 7F
06/27 01:49, 7F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):