Обратный связанный список в C ++ с использованием только указателя узла

Вероятно, компилятор пытается оптимизировать, так как ваше значение ARRSIZE является константой. И тогда он достигает своего собственного статического предела инициализации. Вы могли бы просто вынуть ключевое слово «const», и оно будет работать.

Если нет, возможно, что-то вроде этого.

extern size_t GetArraySize();

int main()
{
    size_t allocationsize = GetArraySize();

    char *cp = new char[allocationsize];
    return 0;
}

size_t GetArraySize()
{
    // compile time assert to validate that size_t can hold a 64-bit value
    char compile_time_assert_64_bit[(sizeof(size_t) == 8)?1:-1];

    size_t allocsize = 0x100000000UL; // 64-bit literal

    return allocsize;
}
-9
задан Alex Rojas 28 August 2016 в 07:01
поделиться