yes, you dont need to "care" for any aspect when using PVars. no array size needed, no initializations, no clearing up. PVars act dynamically, therefore they use less memory in most cases (10 of 500 players with some (lets say 10) variables instead of a huge array[500][20]).
there is another sweet trick for using them: you may set up a string for the variables "name" to identify a certain index.
pawn Код:
new VarString[16];
format(VarString,sizeof(VarString),"RaceCP%d",RaceCheckpoint[playerid]);
SetPVarInt(playerid,VarString,GetTickCount());
if the race checkpoint is 0 (start), then the variable name is "Babul0", the next logical PVar wold be like "Babul1".
you also can format a VarString like "RaceCP%03", this gives a name with leading zeros: "RaceCP001".
in short: sometimes you can even save cpu time, by not needing to loop through arrays in order to clean them up. PVars are definetly worth a look at.