void 不能用解引用

2022-07-26 01:51:12 字數 699 閱讀 3312

c++/ansi c:

void*指標只支援幾種有限的操作:與另乙個指標進行比較;向函式傳遞void指標或從函式返回void*指標;給另乙個void*指標賦值。不允許使用void*指標操作它所指向的物件,例如,不允許對void*指標進行解引用。不允許對void*指標進行算術操作。

gnu c:

gnu c指定void*指標的算術操作與char*一致。

void*表示「任意型別的指標」,主要運用於記憶體操作函式的形參型別和返回值型別(記憶體操作與記憶體中資料型別無關,即任意型別都可以)。

memcpy  

原型:extern void *memcpy(void *dest, void *src, unsigned int count);   

用法:#include

功能:由src所指記憶體區域複製count個位元組到dest所指記憶體區域。   

說明:src和dest所指記憶體區域不能重疊,函式返回指向dest的指標。   

注意:與strcpy相比,memcpy並不是遇到'\0'就結束,而是一定會拷貝完n個位元組。

memset

原型:extern void *memset(void *buffer, int c, int count);

用法:#include

功能:把buffer所指記憶體區域的前count個位元組設定成字元c。

說明:返回指向buffer的指標。

void 型別不能用來初始化char 型別的實體

最近在看黑馬c 教程,他們直接用test02 函式是可以直接執行的,而我用的是vs2019,會報錯,報錯內容為 void 型別不能用來初始化char 型別的實體。檢視了一些方法比如定義為const char 或者在屬性裡面設定符合模式為否都不好用。再看一遍報錯,void 型別不能用來初始化char ...

MySQL 只能用localhost不能用ip連線

如果本地主機能用ip連線,但其他計算機登陸不到,錯誤時10060時,一般是防火牆問題,關閉防火牆或允許3306埠即可 登入進去後用以下命令可以檢視許可權用 mysql use mysql mysql select user,host from user mysqluser,host from use...

藍芽不能用了

今天突然發現筆記本的藍芽不能用了,藍芽指示燈也沒有亮。使用 rfkill 檢查,發現被 block 了 rfkill list 0 tpacpi bluetooth sw bluetooth soft blocked yes hard blocked no 1 phy0 wireless lan s...