看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《abcb1 (買顯卡 7300gt)》之銘言: : 我想宣告一塊記憶體 讓其他function去做存取 : 但是我可能經過幾個function以後才會用到 : ex: main-> functionA -> functionB ->functionC讀取記憶體 : 我不想一直把記憶體位置p傳下去 : 所以我寫了下面這樣的程式 : extern p; 你應該是要打 extern int *p; 可是你這邊宣告成global的指標 你C函式根本就可以直接存取到p不是嘛? 就不用加extern吧! main裡面就不用寫 int *p了 如果你是想要讀取main 指標p 那就只有傳 p到 C函式吧 而你會出現這個錯誤是因為 C函式 認到的p 是extern int *p; 這只有宣告 根本沒有定義他 : int main(){ : int* p; : p = (int* ) malloc (1000 *sizeof (int)); : ................ : } : int C(int n) { : return p[n]; : } : 但是會出現 : [linker erorr] undefined reference to 'p' : 請問各位extern 不能這樣用嗎? : 還是我哪邊寫錯了 : 請各位幫忙解答一下 感謝~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.207.187 ※ 編輯: QQ29 來自: 140.113.207.187 (05/19 11:08)
CBJackal:好強 05/19 11:30
abcb1:感謝你的回答 05/19 11:46