Compilar e executar o programa sem main () em C

Estou tentando compilar e executar o seguinte programa semmain() função emC. Eu compilei meu programa usando o seguinte comando.

gcc -nostartfiles nomain.c

E o compilador avisa

/usr/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000000400340

Ok, não tem problema. executei o arquivo executável (a.out), ambosprintf as instruções são impressas com êxito efalha de segmentação.

Então, minha pergunta é:Por que falha na segmentação após executar com êxito as instruções de impressão?

meu código:

#include <stdio.h>

void nomain()
{
        printf("Hello World...\n");
        printf("Successfully run without main...\n");
}

resultado:

Hello World...
Successfully run without main...
Segmentation fault (core dumped)

Nota:

Aqui,-nostartfiles O sinalizador gcc impede que o compilador use arquivos de inicialização padrão ao vincular

questionAnswers(2)

yourAnswerToTheQuestion