首页 > 解决方案 > C - 矩阵乘法 - 使用最大可分配 RAM 大小

问题描述

我正在尝试解决以下问题:

“编写一个将 nxn 矩阵乘以 n 元素向量的 C 程序。选择内存允许的最大 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 正在使用虚拟 RAM 和其他东西,所以这种方法会导致无限循环。

有任何想法吗 ?

标签: cmatrixdynamic-memory-allocationram

解决方案


推荐阅读