2012-03-15 4 views
2

Possible Duplicate:
invalid conversion from void*' tochar*' when using malloc?Ошибка «неправильного преобразования» при использовании malloc?

Я пытаюсь выделить матрицу динамически на Memmory с помощью указателей, но я продолжаю получать сообщения об ошибках:

|122|error: invalid conversion from 'void*' to 'int**'|

|124|error: invalid conversion from 'void*' to 'int*'|

Вот мой код, я не могу видеть, что я м делает неправильно ... это «пустота *» преобразование не имеет смысла для меня ...

int i,j; 
    int **a; 
    int c = 2; 


    /* Form the matrix */ 
    a = malloc((nxy+1)*sizeof(int *)); 
    for (i=0;i<=nxy;i++) 
     a[i] = malloc((nxy+1)*sizeof(int)); 

    for (i=0;i<=nxy;i++) 
     for (j=0;j<=nxy;j++) 
     a[i][j] = 0; 
+3

Вы определенно компилируете компилятор C, а не компилятор C++? –

+0

Добавление в комментарий @CharlesBailey. Вы компилируете это в .cpp-файле в Visual Studio? – JaredPar

+0

Я на самом деле использую Code :: Blocks – Imperian

ответ

12

Вы компилируете программу с компилятором C++. У вас есть два варианта:

  1. Не делайте этого. Используйте компилятор C.
  2. Включить возвращаемое значение от malloc().
+0

Что вы имеете в виду? Как мне вернуть возвращаемое значение, если это всего лишь часть NULL memmory? – Imperian

+0

'a = (int **) malloc (....)'. Я не понимаю ваш вопрос. –

+0

Nevermind, я просто делал беспорядок на голове, я получил его сейчас – Imperian