面試遇到的指標問題

2021-07-23 22:30:28 字數 736 閱讀 1098

1、如何將陣列指標傳入另乙個函式,並修改其內容?

對於乙個二維陣列 int arry[3][3]

最開始設想的是將陣列的指標的位址作為引數傳入,但是編譯不通過,提示型別不能從int (*)[3][3]轉換為int **

糾結好久最終找到正確的引數型別,必須傳入符號以及指向一維陣列的長度,告訴編譯器具體型別,如下

void getvalue(int arry[3], int length)

}int main()

; getvalue(arry, 3*3);

for (int index = 0; index < 3*3; index++)

system("pause");

return 0;

}

2、將指標傳參,獲取記憶體

最開始的方法如下

void getmemory(char *p)

int main()

結果報錯

原因:因為向空指標賦值

指標作為實參傳入,在函式中形成了乙個臨時的指標物件,給臨時指標p物件賦值不會改變pstr指向的位置

正確寫法:

將指標的位址作為引數傳入,讓指標指向新開闢的記憶體

void getmemory(char **p)

int main()

面試遇到的問題

1.mysql的乙個表,以a.b.c三個字段作為聯合索引,如果以其中的乙個字段作為查詢條件,會不會用到索引 如果以a 也就是聯合索引的第乙個索引 作為查詢條件 則會用到索引 如果以b或者c作為查詢條件 則不會用到索引 2.玩家登陸的具體流程 客戶端首先連線loginserver 從loginserv...

面試遇到的問題

1.grep 如何遞迴地在乙個目錄裡面搜尋所需的字串。2.判斷二叉樹是否對稱。3.c 虛表 4.epoll 和 select 的區別 5.mysql 索引,事務,隔離級別 6.c 多重繼承如果兩個基類有相同名字的成員函式 變數如何處理二義性。c 裡面是否可以把全部的成員函式都設定成virtual,會...

指標常遇到的問題

指標是個涉及到記憶體,很容易產生bug的根源,總結了幾點指標容易出錯的問題 1 對於多級指標,不要在多個函式中分配記憶體空間,例如 void func char p int main 上面這段 就是現在main函式中對p指向的空間開闢了一段記憶體,然後又在func函式中開闢了二級記憶體,這樣在專案開...