с компилятором Codewarrior, который генерирует файлы компоновщика ELF.

аюсь скомпилировать и запустить следующую программу безmain() функция вC, Я скомпилировал свою программу, используя следующую команду.

gcc -nostartfiles nomain.c

И компилятор выдает предупреждение

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

Без проблем. Затем я запустил исполняемый файл (a.out), обаprintf Заявления распечатываются успешно, а затем получаютошибка сегментации.

Итак, мой вопрос,Почему ошибка сегментации после успешного выполнения операторов печати?

мой код:

#include <stdio.h>

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

выход:

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

Замечания:

Вот,-nostartfiles Флаг gcc не позволяет компилятору использовать стандартные файлы запуска при компоновке

Ответы на вопрос(1)

Ваш ответ на вопрос