Я получаю этот код:
#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?
