gpt4 book ai didi

c++ - 为什么这个片段没有产生输出

转载 作者:行者123 更新时间:2023-11-30 02:55:55 25 4
gpt4 key购买 nike

<分区>

我正在阅读 Use Python for Scientific Computing ,并决定自己测试代码。所以 C++ 代码是(稍作修改)

#include <cstdlib>
#include <ctime>
#include <iostream>
#include <cstring>

int main() {
std::clock_t begin = std::clock();
double a1[500][500];
double a2[500][500];
double a3[500][500];
memset(a1, 0, 500*500*sizeof(double));
memset(a2, 0, 500*500*sizeof(double));
memset(a3, 0, 500*500*sizeof(double));
int i, j, k;
for(i = 0; i < 500; i++) {
for(j = 0; j < 500; j++) {
for(k = 0; k < 500; k++) {
a3[i][j] += a1[i][k] * a2[k][j];
}
}
}
std::clock_t end = std::clock();
std::cout << (double)(end - begin) / (double)CLOCKS_PER_SEC<<std::endl;
return 0;
}

这是一个非常简单的代码,但奇怪的是根本没有生成任何输出。不是 0,而是什么都没有。我尝试了 VC11 和 MinGW 4.7,但它们都没有产生任何结果。只有当内部的 for 循环被移除时,这段代码才会产生输出,即 0。

如果我在 VS 2012 中调试,将抛出“堆栈溢出”异常,而如果不在 Debug模式下则不会发生错误。

这种奇怪行为的原因是什么?


编辑

所以我使用了new,这次有一个正常的输出0.83。

不过,我还是觉得奇怪,堆栈溢出错误没有显示,但程序只是退出而没有给出输出。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com