Hello!!
It's the first time I post at your forum..
I can clearly understand how to pass a dynamic array to a function and modified within the function..
My aim is to get back the array initialized as I am trying on the next sample of code..
Any help would mean a lot to me!
Code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <fstream>
using namespace std;
#define N 3 //number of bodies
void initialise( double *M[], double *X[], double *y[])
{
*M[1]=0.001; *M[2]= 0.002; *M[3]= 1.; //Masses (the last body must be the gratest)
*X[0]=0.; //Time
*X[1]=0.9741; *X[2]=0.; *X[3]=0.1; //x,y,z for body 1 MOON
*X[4]=2.2933; *X[5]=0.; *X[6]=1.; //x,y,z for body 2 EARTH
*X[7]=0.0055607; *X[8]=0.; *X[9]=0.0021;//x,y,z for body 3 SUN
*X[10]=0.2; *X[11]=1.0327; *X[12]=0.0005; //Vx,Vy,Vz for body 1
*X[13]=0.1; *X[14]=0.6320; *X[15]=0.0005; //Vx,Vy,Vz for body 2
*X[16]=0.01; *X[17]=0.0022967; *X[18]=0.0000015;//Vx,Vy,Vz for body 3
for ( int i=0; i<=3*(N-1); ++i ) *y[i] = *X[i];
for ( int i=3*(N-1)+1; i<=6*(N-1); ++i ) *y[i] = *X[i+3];
}
int main()
{
double *M=new double[N+1]; //the masses of the bodies
double *X=new double[6*N+1]; //time,positions,velocities of N bodies
double *y=new double[6*(N-1)+1]; //time,positions,velocities of N-1 bodies
initialise( &M, &X, &y);
for (int i=0; i<=6*N; ++i) cout<<X[i]<<endl;
return 0;
}