I'm not sure I understand exactly what you are trying to do.
You can get the position of an individual particle in the run-time expression of the particle shape simply by accessing the position attribute. if you created a bunch of particles, and then wanted to store their positions in an array, you could write a run-time expression like this:
global vector $pos[];
$pos[particleId] = position;
then step forward one frame, and the runtime expression would fill in the array automatically indexed by particle ID. This may be a really bad idea if you have a lot of particles.
If you are trying to do something like generate geometry at the particle positions, or move existing geometry to the particle position, you could use the runtime expression and reference the particleShape.position attribute directly, rather than trying to store it.
The best solution depends on what, exactly, you want to do with the particle positions.