В Военно-морской обсерватории США работают криворукие программисты. Вот кусок кода из их продукта AE98 (эфемерида пятнадцати ярких астероидов):
double *dmalloc( size_t size, int err ) {
/* Allocate memory for a pointer to double and do error checking. */
double *tmp;
err = 0;
tmp = (double*) malloc( size );
if( tmp == NULL ) {
fprintf( stderr, "MEMORY ALLOCATION ERROR IN POINTER TO double!\n" );
err = 1 ;
}
return tmp;
}
Про параметр err сказано:
OUTPUT
ARGUMENT:
err = error detection flag.
= 0 ( No error )
= 1 ( Memory allocation error )
И кто они после этого? Интересно, что программа раздается всем желающим с 1998 года. И баг так и не пофиксен.
Для справки тем, кто плохо знает Си: все параметры передаются в подпрограмму
по значению.
Опубликовано в 22:20
(все мои записи на Google+)