Преобразование void в int C++

Написание программы с использованием теории Sieve of Tratosthenes, и я не могу скрыть void в int.

Вот мой код:

#include <stdio.h>
#include <stdlib.h>

#define limit 1000000 /*size of integers array*/
void *malloc(size_t size)

int main(){
    unsigned long long int i, j;
    int *primes;
    int z = 1;
    int times;
    int counter;

    printf_s("Enter the limit: ");
    scanf_s("%d\n", &times);

    do (counter++) {
        primes = malloc(sizeof(int) * limit);

        for (i = 2; i < limit; i++)
            primes[i] = 1;

        for (i = 2; i < limit; i++)
            if (primes[i])
                for (j = i; i * j < limit; j++)
                    primes[i * j] = 0;

        printf("\nPrime numbers in range 1 to 100 are: \n");
        for (i = 2; i < limit; i++)
            if (primes[i])
                printf("%d\n", i);
    } while (counter <= times)

    return 0;
}

Там происходит ошибка в этой строке:

primes = malloc(sizeof(int) * limit);

Может кто-то указать мне, что я делаю неправильно? Я не использую правильную библиотеку или неправильно закодирована функция с "malloc()"? Этот код в компиляторе C++, но я провел исследование и увидел, что он может работать в программе, скомпилированной на C. Спасибо

0 ответов

Другие вопросы по тегам