2015-03-22 4 views
-1

В чем разница между:Разница между (int *) calloc и просто calloc?

int *array; 
array = (int*) calloc(5, sizeof(int)); 

и

int *array; 
array = calloc(5, sizeof(int)); 

Я не понимаю. Оба образца работают. В университете профессор объяснил, зачем вам (int *) перед calloc, но я этого не понял.

В процессе был пример кода, как это:

struct data{ 
    int number; 
    char *name; 
}; 
typedef struct data student; 

int main(){ 
    student **list; 
    list = (student*) calloc(10, sizeof(student*)); 

    //Create structures dynamic in list 
    .... 

    return 0; 
} 

Я надеюсь, что кто-то может объяснить мне. Спасибо.

ответ

0

Разница заключается в том, что сначала возникает нарушение ограничений, а второе - нет. Тип возврата calloc - void *, поэтому его не нужно бросать.

Также читайте: Do I cast the result of malloc?