我使用C malloc函數的一個問題,當我寫:在C使用malloc不工作
int *ptr = malloc(sizeof(int));
或本
int *x = (int*)malloc(sizeof(int*));
或本
int *x = (int*)malloc(sizeof(int));
錯誤: 'x':'int *'與'int'的間接程度不同
我正在使用Visual Studio 2013,Win32控制檯應用程序。
可能是什麼問題?
我使用C malloc函數的一個問題,當我寫:在C使用malloc不工作
int *ptr = malloc(sizeof(int));
或本
int *x = (int*)malloc(sizeof(int*));
或本
int *x = (int*)malloc(sizeof(int));
錯誤: 'x':'int *'與'int'的間接程度不同
我正在使用Visual Studio 2013,Win32控制檯應用程序。
可能是什麼問題?
這
int *ptr = malloc(sizeof(int));
和
int *x = (int*)malloc(sizeof(int));
在本質上是相同的(你不需要投)
無論在堆上分配足夠的內存來存儲一個int,並返回一個指向它的指針。
然而,這是....?
int *x = (int*)malloc(sizeof(int*));
垃圾
的問題是編寫正確的代碼。
#include
這是在堆上一個int分配內存的正確方法:
int *ptr = malloc(sizeof(int));
所以,你不應該有任何錯誤。如果您忘記包含標題<stdlib.h>
,則應僅提供警告。但我對視覺工作室並不熟悉。另外,請檢查您是否沒有拼錯單詞malloc
。
int * ptr = malloc(sizeof(int));'是合適的 – 0x90
那麼爲什麼它不起作用? – Nityuiop18
刪除了C++標記 - 沒有必要 –