1樓:生活he家
是不是你的方法沒有返回值。
c 程式設計出現無法從void*轉換為char*錯誤
2樓:天線兒
void *可以指飢舉向任何型別的資料,任何型別的指標都可以直接賦值給它,如:
void *p1;
int *p2;
p1 = p2;
但反過來明敏不行,如:
void *p1;
int *p2;
p2 = p1;
提示「'=cannot convert from 'void *'to 'int *'
因爛槐碧為「無型別」可以包括「有型別」,而「有型別」則不能包括「無型別」。
memmove的錯誤錯誤 無法從「void *」轉換為「char *」
3樓:網友
s定義為常量字串位址,不能向其複製記憶體,應將char* s定以為char s[50]
vs2017中報錯:(53) : 無法將引數 2從「const char [7]」轉換為「char *」
4樓:網友
雖然沒看你的**(太亂了),但是這個問題很顯然是你對常量與變數沒有理解清楚,zhang3"是乙個字串,字串本身是乙個常量,它沒有辦法「變化」,而可以推測你的teacher類建構函式第二個引數是要接受乙個字元型指標,字元型指標的本質是乙個變數,它「指向乙個字串」,而它自己不是字串,所以你傳參的時候傳錯了型別了,才會報錯,你可以這樣:
char* p = "zhang3";
teacher t1(1,p);
vs2010提示error c2440: 「=」: 無法從「wchar_t *」轉換為「char *」,求解
5樓:水晶扇
cstring::getbuffer()返回的型別是lptstr。
我們檢視lptstr的定義:
#ifdef unicode // r_winnt
typedef lpwstr ptstr, lptstr;
#else /* unicode */ // r_winnt
typedef lpstr ptstr, lptstr;
#endif /* unicode */ // r_winnt
在看lpwstr和lpstr的定義:
#ifndef _mac
typedef wchar_t wchar; // wc, 16-bit unicode character
#elsetypedef unsigned short wchar; // wc, 16-bit unicode character
#endif
typedef wchar *lpwstr, *pwstr;
--也就是說,lpwstr 是 wchar_t*或者unsigned*
typedef char char;
typedef char *lpstr, *pstr;
--也就是說,lpstr是char*
這兩者定義不一致,所以不能直接賦值。
究其原因,就是你在建立工程的時候(可能是預設),選擇了unicode模式。
修改有兩種:一是去掉unicode模式。
二是char *pstr;定義改為lptstr pstr;這樣也可以使用printf()或者messagebox()輸出,允許使用多位元組的非ascii字元。 (功能基本不受影響)
6樓:光棍誓言
wchar是不能從char* 直接轉變的,有個函式,不過那是程序導向的函式,不知道合不合適你這個程序導向的~~~wcstombs_s()
強制轉化void成char char* name = (char*) args; ,錯在哪
7樓:網友
什麼叫做"void *"不變成 "char *"...如果你確定某個void * 指標在變成void *之前是char *的話。你強制轉換成char *就好呀。
就是在指標前顯式加(char *)或者 賦值給char *變數也行)..它們不會自動轉換的。
本人c++初學者,編譯時老提示:錯誤 1 error c2440: 「初始化」: 無法從「const char [3]」轉換為「char
8樓:網友
1全部錯誤說的很明確了,你用乙個長度為3,資料型別為char的陣列,給乙個char變數賦值,當然是錯的。
char a="00";
改成char a[3]="00";
或者char *a="00";
但考慮到你的。
wchar_t getweekname(wchar_t f);
引數是wchar_t,而typedef unsigned short wchar_t;
所以最好就是這樣:
char a='0';//就乙個字元0
c語言函式體無法將引數2從"void"轉換為"……"
9樓:網友
只需要將該void *型別成員,強制轉換為具體的資料類絕鉛型。
指標即可。需要注意的是,該強制轉換是有風險的,轉換時,必須確定void*指向記憶體實際資料為目標結構體。
格式,否則可能會出現記憶體越界訪問,從而導致程式出現不確定結果。參考**如下,具有結構體a struct a; 及結構體b,包含有void *型別成員p struct b; 將結構體b 變數b中的void *p轉轎緩為struct a*指標的並帆好方式為 struct a*pa=(struct a*);
vs2019編譯c程式無法啟動,VS2010編譯C 程式,無法啟動C windows system3 cmd exe 拒絕訪問
cmd被禁用了!你可以試試單獨啟動cmd.exe是否好用,如果不好用,那說明問題出在這cmd.exe上。如果好用,可能是你在 把cmd的訪問給禁止了,可以試試 執行gpedit.msc開啟組策略管理器,在使用者配置 管理模板 系統裡面有一條 阻止訪問命令提示符 或者是下面一條 不要執行指定的wind...
iphone無法信任證書,提示「無法驗證,重新接入網際網路」,怎麼辦
回答第七步 這時手機的介面上會彈出提示框,找到介面右下角的 信任 按鈕,並點選,就可以成功的解決iphone無法驗證應用的問題了。如果是已經驗證 還是無法開啟,那就需要關機重啟,若到這一步也不行,就是該軟體自身的問題不相容或者未除錯好 這段諮詢時間如果沒有結束,有其他的問題,我也可以幫您解決,我看到...
用vs2019無法c專案,用VS2010無法新建C專案!!
重置vs配置試試,方法如下 1 在 工具 選單上單擊 匯入和匯出設定 2 在 歡迎使用 匯入和匯出設定嚮導 頁上單擊 重置所有設定 再單擊 下一步 3 如果要儲存當前的設定組合,請單擊 是,儲存我的當前設定 指定一個檔名,然後單擊 下一步 或 如果要刪除當前的設定組合,請選擇 否,僅重置設定,從而覆...