记录增加时,Malloc失败

时间:2018-11-11 10:27:37

标签: c pointers malloc

我在代码中使用malloc进行内存分配,如下所示:

<!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Simple Test</title>
        <style>
            body {
                width: 100vw;
                height: 100vh;
                box-sizing: border-box;
                display: flex;
                flex-flow: column nowrap;
                margin: 0px;
                border: 4px dashed lightcoral;
            }
            h1 {
                flex: 0 0 auto;
                margin: 0px;
                border: 4px solid chocolate;
            }
            div {
                flex: 1 1 0px;
                border: 4px dotted darkorchid;
            }
            canvas {
                width: 100%;
                height: 100%;
                box-sizing: border-box;
                border: 4px solid lightseagreen;
            }
        </style>
    </head>
    <body>
    <h1>Heading</h1>
    <div><canvas width="400" height="200"/></div>
    <script>
        var c = document.getElementsByTagName('canvas').item(0);
        var x = c.getContext('2d');
        x.ellipse(100, 100, 50, 50, 0, 0, 360);
        x.fill();
    </script>
    </body>
    </html>

a是一个存储三个表的结果的结构。当我为n> 30000条记录运行时,它失败并给出所提供的错误消息。即使经过类型转换,其也不起作用。如何修改以运行它以获取更多记录?

1 个答案:

答案 0 :(得分:1)

假设您的结构的大小为16个字节,那么您尝试分配:

16×30000×30000字节= 14,400,000,000字节= 14.4 GB

那可能比您的计算机拥有的可用主存储器还多。所以它失败了,因为您试图分配太大的内存。