[問題] 不能無法用malloc初始化物件

作者: ericerix (Ponwar)   2020-05-27 16:02:43
開發平台(Platform): (Ex: Win10, Linux, ...)
Windows 10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
Visual Studio 2017
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
stdio.h
問題(Question):
無法初始化
餵入的資料(Input):

預期的正確結果(Expected Output):

錯誤結果(Wrong Output):
類型(void *)無法用來初始化類型"int"的實體
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
int *x = malloc(sizeof(int));
補充說明(Supplement):
程式碼的部分,是某個課本刻下來部分程式碼
這課本原本是用C,但visual studio似乎沒有C的編譯器
所以用C++,
結果就出現了這個錯誤
上網找也找不到解決辦法QQ
作者: jigfopsda (jigfopsda)   2020-05-27 16:09:00
try int *x = (int*)malloc(sizeof(int)) ?
作者: firejox (Tangent)   2020-05-27 18:31:00
c++就不要用malloc啊
作者: cuteSquirrel (松鼠)   2020-05-27 19:22:00
int *x = new int();
作者: loveme00835 (髮箍)   2020-05-27 21:14:00
副檔名改 .c 不行嗎? C++ 這樣寫很恐怖
作者: ddavid (謊言接線生)   2020-05-27 21:54:00
也沒啥恐怖的啦,不然C都恐怖多少年了XD
作者: Lipraxde (Lipraxde)   2020-05-27 22:18:00
這錯誤訊息手打的?
作者: nh60211as   2020-05-27 22:20:00
VC++有中文錯誤
作者: Lipraxde (Lipraxde)   2020-05-27 22:37:00
真可怕XD
作者: loveme00835 (髮箍)   2020-05-27 22:45:00
偶笑惹 看來是把 C++ 當成 C 寫的大大呢嚴格來說只有轉型沒有呼叫建構子的東西是不能用的因為他連「物件」都不算
作者: kingofsdtw (不能閒下來!!)   2020-06-05 08:40:00
C and cpp ...嗯
作者: tinlans ( )   2020-06-11 05:19:00
副檔名放 .c 就會是 C 模式,openssl 和 curl 這些知名函式庫都還是能用 MSVC 在 C 模式下編譯的。萬一全部都用 C++ 模式編譯會有很多東西編不過。

Links booklink

Contact Us: admin [ a t ] ucptt.com