Самая короткая "падающая" программа на C
От: fAX Израиль  
Дата: 07.11.04 20:05
Оценка:
Задание несложное: написать самую короткую программу, которая бы завершалась аварийно
...Complex problems have simple, easy-to-understand wrong answers...
(Grossman's Misquote of H.L.Mencken)
Re: Самая короткая "падающая" программа на C
От: Draqon  
Дата: 07.11.04 20:21
Оценка:
Здравствуйте, fAX, Вы писали:

fAX>Задание несложное: написать самую короткую программу, которая бы завершалась аварийно


int main()
{
   int i = 1/0;
}
Re: Самая короткая "падающая" программа на C
От: King Oleg Украина http://kingoleg.livejournal.com
Дата: 07.11.04 20:23
Оценка:
Здравствуйте, fAX, Вы писали:

fAX>Задание несложное: написать самую короткую программу, которая бы завершалась аварийно

Она должна компилироваться?
King Oleg
*Читайте DOC'и, они rules*
Re[2]: Самая короткая "падающая" программа на C
От: fAX Израиль  
Дата: 07.11.04 20:24
Оценка:
Здравствуйте, King Oleg, Вы писали:

KO>Здравствуйте, fAX, Вы писали:


fAX>>Задание несложное: написать самую короткую программу, которая бы завершалась аварийно

KO>Она должна компилироваться?
Безусловно!
...Complex problems have simple, easy-to-understand wrong answers...
(Grossman's Misquote of H.L.Mencken)
Re[2]: Самая короткая "падающая" программа на C
От: fAX Израиль  
Дата: 07.11.04 20:25
Оценка:
Здравствуйте, Draqon, Вы писали:

D>Здравствуйте, fAX, Вы писали:


fAX>>Задание несложное: написать самую короткую программу, которая бы завершалась аварийно


D>
D>int main()
D>{
D>   int i = 1/0;
D>}
D>

Ужас! Целых 30 символов!!!
...Complex problems have simple, easy-to-understand wrong answers...
(Grossman's Misquote of H.L.Mencken)
Re: Самая короткая "падающая" программа на C
От: korzhik Россия  
Дата: 07.11.04 20:31
Оценка: 1 (1)
Здравствуйте, fAX, Вы писали:

fAX>Задание несложное: написать самую короткую программу, которая бы завершалась аварийно


main(){main();}


15 символов
Re[2]: Самая короткая "падающая" программа на C
От: korzhik Россия  
Дата: 07.11.04 20:34
Оценка:
Здравствуйте, korzhik, Вы писали:

fAX>>Задание несложное: написать самую короткую программу, которая бы завершалась аварийно


K>
K>main(){main();}
K>

K>15 символов

ну наверно это нелегально с точки зрения стандарта C,
ну пусть так:
int main(){main();}

19 символов
Re[3]: Самая короткая "падающая" программа на C
От: Neo09 Россия  
Дата: 07.11.04 21:41
Оценка:
Здравствуйте, fAX, Вы писали:

fAX>Здравствуйте, Draqon, Вы писали:


D>>Здравствуйте, fAX, Вы писали:


fAX>>>Задание несложное: написать самую короткую программу, которая бы завершалась аварийно


D>>
D>>int main()
D>>{
D>>   int i = 1/0;
D>>}
D>>

fAX>Ужас! Целых 30 символов!!!

А так:
int main(){1/0;}

16. Чужую идею украл
Re: Самая короткая "падающая" программа на C
От: BlackHeretic Израиль  
Дата: 08.11.04 07:43
Оценка: :)
Здравствуйте, fAX, Вы писали:

fAX>Задание несложное: написать самую короткую программу, которая бы завершалась аварийно


27 символов

int main(int i){1/main(0);}
ICQ 156156278
Re[4]: Самая короткая "падающая" программа на C
От: BlackHeretic Израиль  
Дата: 08.11.04 07:44
Оценка:
Здравствуйте, Neo09, Вы писали:

N>Здравствуйте, fAX, Вы писали:


fAX>>Здравствуйте, Draqon, Вы писали:


D>>>Здравствуйте, fAX, Вы писали:


fAX>>>>Задание несложное: написать самую короткую программу, которая бы завершалась аварийно


D>>>
D>>>int main()
D>>>{
D>>>   int i = 1/0;
D>>>}
D>>>

fAX>>Ужас! Целых 30 символов!!!

N>А так:

N>
N>int main(){1/0;}
N>

N>16. Чужую идею украл

Не скомпилится
ICQ 156156278
Re[3]: Самая короткая "падающая" программа на C
От: BlackHeretic Израиль  
Дата: 08.11.04 07:45
Оценка:
Здравствуйте, korzhik, Вы писали:

K>Здравствуйте, korzhik, Вы писали:


fAX>>>Задание несложное: написать самую короткую программу, которая бы завершалась аварийно


K>>
K>>main(){main();}
K>>

K>>15 символов

K>ну наверно это нелегально с точки зрения стандарта C,

K>ну пусть так:
K>
K>int main(){main();}
K>

K>19 символов

Тогда return нужен
А вот если void вместо int то наверное короче уже некуда
ICQ 156156278
Re[3]: Самая короткая "падающая" программа на C
От: Кодт Россия  
Дата: 08.11.04 09:51
Оценка:
Здравствуйте, korzhik, Вы писали:

K>>
K>>main(){main();}
K>>

K>>15 символов

K>ну наверно это нелегально с точки зрения стандарта C,


Это по-любому нелегально: функцию main нельзя вызывать рекурсивно. Где-то в Стандарте на этот счёт сказано.

Более подходяще было бы
main(){abort();}
Перекуём баги на фичи!
Re[4]: Самая короткая "падающая" программа на C
От: Аноним  
Дата: 08.11.04 10:07
Оценка:
Здравствуйте, Кодт, Вы писали:

>Это по-любому нелегально: функцию main нельзя вызывать рекурсивно. Где-то в Стандарте на этот счёт сказано.


если не изменяет память, в C, в отличие от C++ как раз можно вызывать функцию main рекурсивно.
Люди, у кого есть C99 посмотрите пожалуйста.
Re: Самая короткая "падающая" программа на C
От: 0xFADE США github.com/NotImplemented
Дата: 08.11.04 10:13
Оценка:
Здравствуйте, fAX, Вы писали:

fAX>Задание несложное: написать самую короткую программу, которая бы завершалась аварийно

int main {*((void *)0);}
Re[5]: Самая короткая "падающая" программа на C
От: korzhik Россия  
Дата: 08.11.04 10:17
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Кодт, Вы писали:


>>Это по-любому нелегально: функцию main нельзя вызывать рекурсивно. Где-то в Стандарте на этот счёт сказано.


А>если не изменяет память, в C, в отличие от C++ как раз можно вызывать функцию main рекурсивно.

А>Люди, у кого есть C99 посмотрите пожалуйста.

анонимом был я
Re[4]: Самая короткая "падающая" программа на C
От: korzhik Россия  
Дата: 08.11.04 10:34
Оценка:
Здравствуйте, BlackHeretic, Вы писали:

BH>Здравствуйте, korzhik, Вы писали:

K>>ну наверно это нелегально с точки зрения стандарта C,
K>>ну пусть так:
K>>
K>>int main(){main();}
K>>

K>>19 символов
BH>Тогда return нужен
BH>А вот если void вместо int то наверное короче уже некуда

void вроде нельзя по стандарту
Comeau в режиме C99 вариант с void не скомпилил,
а вот вариант с int и без return скомилил даже без варнингов.
Re: Самая короткая "падающая" программа на C
От: niks3  
Дата: 08.11.04 10:38
Оценка:
Здравствуйте, fAX, Вы писали:

fAX>Задание несложное: написать самую короткую программу, которая бы завершалась аварийно


main(){int i;i=1/(i-i);}
Re[4]: Самая короткая "падающая" программа на C
От: niks3  
Дата: 08.11.04 10:41
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, korzhik, Вы писали:


K>>>
K>>>main(){main();}
K>>>

K>>>15 символов

K>>ну наверно это нелегально с точки зрения стандарта C,


К>Это по-любому нелегально: функцию main нельзя вызывать рекурсивно. Где-то в Стандарте на этот счёт сказано.


К>Более подходяще было бы

К>
main(){abort();}


main(){main();} — скомпилировалось в VC7.1 и вызвало stack overflow
Re[5]: Самая короткая "падающая" программа на C
От: korzhik Россия  
Дата: 08.11.04 12:07
Оценка:
Здравствуйте, Аноним, Вы писали:

А>если не изменяет память, в C, в отличие от C++ как раз можно вызывать функцию main рекурсивно.

А>Люди, у кого есть C99 посмотрите пожалуйста.
скачал я себе C99, так что вот:

C99 6.5.2.2#11:

Recursive function calls shall be permitted, both directly
and indirectly through any chain of other functions.

Никаких исключений для функции main здесь не делается.
Хотя в C++ рекурсивный вызов функции main ведёт (насколько я помню) к undefined behavior, в C99 это well defined.

Как я понял return обязателен, так что окончательный вариант полностью соответствующий стандарту C99 такой:
int main(void){main();return 0;}

32 символа
Re: Самая короткая "падающая" программа на C
От: korzhik Россия  
Дата: 08.11.04 12:10
Оценка: 149 (16)
Здравствуйте, fAX, Вы писали:

fAX>Задание несложное: написать самую короткую программу, которая бы завершалась аварийно


Господа, куда приходить за призом?

int main;

9 символов
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.