Вот код в вопросе:Неверный размер записи 4
long number = atol(argv[1]);
long prime_limit = number/2;
int * primes = malloc(sizeof(int) * prime_limit);
long i;
for (i = 2; i <= prime_limit; i++) {
primes[i] = 1; # This is line 16
}
Вот ошибки:
==9318== Invalid write of size 4
==9318== at 0x40065B: main (003.c:16)
==9318== Address 0x8 is not stack'd, malloc'd or (recently) free'd
==9318==
==9318==
==9318== Process terminating with default action of signal 11 (SIGSEGV)
==9318== Access not within mapped region at address 0x8
==9318== at 0x40065B: main (003.c:16)
==9318== If you believe this happened as a result of a stack
==9318== overflow in your program's main thread (unlikely but
==9318== possible), you can try to increase the size of the
==9318== main thread stack using the --main-stacksize= flag.
==9318== The main thread stack size used in this run was 8388608.
Я считаю, что ошибка должна быть как я таНос, но я не являюсь так уверен. Значение ARGV [1] является 600851475143.
Я откатил правки. Исправление исходного (ошибочного) фрагмента сделало бы (правильные) ответы бесполезными, ИМО. – wildplasser