我已经有一段时间没有使用 C++ 了,而且我似乎正在犯我确信是一个非常愚蠢的错误。有人可以告诉我为什么
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
double* atoms;
atoms = (double*)malloc(10 * 3*sizeof(double));
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 3; j++) {
atoms[i*10 + j] = 2.0;
}
}
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 3; j++) {
cout << atoms[i*10 + j] << endl;
}
cout << endl;
}
free(atoms);
return 0;
}
正在打印
2
2
2
2
2
2
2
2
2
6.94528e-310
6.94528e-310
0
0
4.24399e-314
4.24399e-314
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
而不是全2?谢谢