Particle p was never initialized so you can leave it out; that’s what has the null pointer and is causing the error. Then use a draw() that looks like this to draw array elements:
void draw() {
background(255);
for(int i = 0; i < particles.length; i++){
particles[i].update();
particles[i].show();
}
}
You only set up the array for one particle, so if you look closely you’ll see the lone point at 0,0.