2013-11-02 3 views
-3

У меня есть проблема с функцией C таНос, когда я пишу:Использование таНос в C не работает

int *ptr = malloc(sizeof(int)); 

или это

int *x = (int*)malloc(sizeof(int*)); 

или это

int *x = (int*)malloc(sizeof(int)); 

ошибка: 'x': 'int *' отличается в уровнях косвенности от 'int'

Я использую Visual Studio 2013, консольное приложение Win32.

В чем может быть проблема?

+3

'int * ptr = malloc (sizeof (int));' является правильным – 0x90

+0

Так почему же он не работает? – Nityuiop18

+0

удалил тег C++ - не обязательно –

ответ

1

Это

int *ptr = malloc(sizeof(int)); 

и

int *x = (int*)malloc(sizeof(int)); 

, по существу, то же самое (вам не нужно бросание)

Оба выделить достаточно памяти в куче для хранения INT, и возврат указатель на него.

Это, однако, есть ....?

int *x = (int*)malloc(sizeof(int*)); 

Мусор

Проблема заключается в том, чтобы написать разумный код.

+0

#include

0

Это правильный способ выделения памяти для междунар в куче:

int *ptr = malloc(sizeof(int)); 

Таким образом, вы не должны иметь каких-либо ошибок. Если вы забыли включить заголовок <stdlib.h>, у вас должно быть только предупреждение. Но я не знаком с визуальной студией. Кроме того, пожалуйста, проверьте, что вы не написали слово malloc.

Смежные вопросы