Ниже приведен код, в котором я определил структуру с четырьмя переменными.Первые два массива по 3 элемента в каждом.Две другие переменные являются скалярами.Я попытался использовать vc ++, g ++ и онлайн-компилятор для компиляции этого кода.Однако для всех трех случаев адрес памяти последнего элемента массива vel и адрес переменной kinetic оказываются одинаковыми.Вот код.
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <ctime>
using namespace std;
struct molec
{
double pos[3] = {0,0,0},vel[3] = {0,0,0},kinetic = 0,potential = 0;
};
int main()
{
const int n = 5;
molec particle[5];
for (int i = 0; i<n; ++i)
{
cout << "Particle no: " << i+1 << endl;
cout << "Coordinates: [ " << &(particle[i].pos[1]) << ", " << &(particle[i].pos[2]) << ", " << &(particle[i].pos[3]) << "]" << endl;
cout << "Velocities: [ " << &(particle[i].vel[1]) << ", " << &(particle[i].vel[2]) << ", " << &(particle[i].vel[3]) << "]" << endl;
cout << "Kinetic energy: " << &(particle[i].kinetic) << endl;
cout << "Potential energy: " << &(particle[i].potential) << endl;
cout << endl;
}
return 0;
}
Вот вывод, полученный при компиляции с использованием vc ++
Particle no: 1
Coordinates: [ 000000A01012F918, 000000A01012F920, 000000A01012F928]
Velocities: [ 000000A01012F930, 000000A01012F938, 000000A01012F940]
Kinetic energy: 000000A01012F940
Potential energy: 000000A01012F948
Particle no: 2
Coordinates: [ 000000A01012F958, 000000A01012F960, 000000A01012F968]
Velocities: [ 000000A01012F970, 000000A01012F978, 000000A01012F980]
Kinetic energy: 000000A01012F980
Potential energy: 000000A01012F988
Particle no: 3
Coordinates: [ 000000A01012F998, 000000A01012F9A0, 000000A01012F9A8]
Velocities: [ 000000A01012F9B0, 000000A01012F9B8, 000000A01012F9C0]
Kinetic energy: 000000A01012F9C0
Potential energy: 000000A01012F9C8
Particle no: 4
Coordinates: [ 000000A01012F9D8, 000000A01012F9E0, 000000A01012F9E8]
Velocities: [ 000000A01012F9F0, 000000A01012F9F8, 000000A01012FA00]
Kinetic energy: 000000A01012FA00
Potential energy: 000000A01012FA08
Particle no: 5
Coordinates: [ 000000A01012FA18, 000000A01012FA20, 000000A01012FA28]
Velocities: [ 000000A01012FA30, 000000A01012FA38, 000000A01012FA40]
Kinetic energy: 000000A01012FA40
Potential energy: 000000A01012FA48
Кто-нибудь может подтвердить, что эта проблема наверняка повторяется?Если да, в чем проблема или почему это произойдет?
Заранее спасибо.