Я получаю этот код:
#include<stdio.h>
#include<stdlib.h>
void main(void)
{
char *ptr = (char*)malloc(10);
if(NULL == ptr)
{
printf("\n Malloc failed \n");
return;
}
else
{
// Do some processing
free(ptr);
}
return;
}
Он успешно компилируется в Visual C, но не компилируется в gcc, я получаю "error:" main "должен возвращать" int ". Таким образом, возвращаемый тип 'int' функции main() - это соглашение (которое для определения компилятора) или правило C?