C - Matrixmultiplication - использовать максимально выделяемый размер оперативной памяти - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь решить следующую проблему:

"Напишите программу на C, которая умножает матрицу nxn на вектор n-элементов. Выберите n настолько большой, насколько позволяет ваша память."

Умножение матриц очень легко реализовать, и вы можете найти достаточно информации в Интернете, но я не знаю, как определить максимальный объем выделяемой памяти.

Первое, что пришло мне в головубыло сделать динамическое выделение памяти с функциями malloc () и realloc () и посмотреть, насколько это возможно.

int main() {  
    int n = 0;
    float** first = (float**) malloc(sizeof(float*));

    while(1) {
        next** = (float**) realloc(first, n * sizeof(float*));
        n++;

        if (next == NULL) {
            break;
        }
    }   
}

Проблема в том, что Windows 10 использует виртуальную память и все такое, так чтометод приводит к бесконечному циклу.

Любые идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...