Hi there. I am currently trying to set up a coordinate system for a program I am in the process of creating. I originally set it up in the following way;
double **coords = newdouble*[n_atoms];
Which worked fine. However, I am currently wanting to change this to the following;
1 2 3 4 5
double **coords = newdouble*[n_atoms_arb];
for (int i = 0; i < n_atoms_arb-1; i++)
{
coords[i][0]=coords[i][1]=coords[i][2]=0;
}
where n_atoms_arb is about 50x larger than n_atoms.
However, when I try running this I get an unhandled exception (which I understand very little of) "Unhandled exception at 0x011c2556". Any ideas why this is?
Hi Peter, thanks for the reply. Just so I can get my head around what you're saying. Originally I had not made the pointers point anywhere, so when the compiler looked for the location of the point it found nothing and caused an unhandled exception?
So something like this works instead;
1 2 3 4 5 6
constint N = 0;
double **coords = newdouble*[n_atoms_arb];
for (int i = 0; i < n_atoms_arb; i++)
{
coords[i] = newdouble[N];
}
Yes. You will have to change N to whatever size it is you want (looks like 3 in your first post). This code will not actually initialize the values in the array. If you want all the number to be zero you can add a couple of parenthesis. coords[i] = newdouble[N]();