Я пытаюсь решить следующую проблему:
"Напишите программу на 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 использует виртуальную память и все такое, так чтометод приводит к бесконечному циклу.
Любые идеи?