这个问题已经在这里有了答案:




已关闭8年。






这段代码仅是为了将二进制文件中的值读入数组DataBuffer中。当DataBuffer的大小大于或等于515000时,它只会崩溃。我正在Windows 7的Visual C++ 2010中进行开发。函数cbFileRead()是我无法访问其源代码的东西。 cbFileRead()期望DataBuffer的类型为USHORT *。

#include <stdio.h>  // printf()
#include "cbw.h"    // cbFileRead()

int main(int argc, char* argv[]) {

    // Declarations
    char* FileName = argv[1];
    long FirstPoint = 0;
    long NumPoints;

    // Set data collection sizes
    const long chunkSize = 515000;
    NumPoints = chunkSize; // Number of points to be read into mem
    WORD DataBuffer[chunkSize-1];

    // Get data
    cbFileRead(FileName, FirstPoint, &NumPoints, DataBuffer);

    printf("Completed on data point %d whose value is %d\n", NumPoints, DataBuffer[chunkSize-1]);

    return 0;
}

崩溃的原因有哪些?我希望数组的大小能够更高。

最佳答案



Microsoft Dev Center - Thread Stack Size

或者,您可以使用new关键字动态分配内存。

08-18 18:49