Código:
pcm[_1] = pcm+1024
Me imagino que pcm[_1] está equivocado y que pones pcm_[1].
En C, puedes hacer la asignación como propones, después del tiempo de declaración. Da lo mismo.
En Delphi probablemente el problema lo tienes en la aritmética de punteros. En C los punteros los sumas o restas tranquilamente. puedes sumar a un puntero un int significando que ahora apunta a p+int posición.
No se mucho de pascal, pero creo que la aritmética de punteros no es tan directa como en C. o necesitarás una sintaxis especial. Investiga el tema.
EDITO:
La artimetica de punteros en C es sensible al tipo. No es lo mismo:
Código:
char *C;
int *I;
(char*)(C+2) != (char*)(I+2);
La suma de un entero a un puntero equivale a sumar posiciones al puntero, no a su valor. Asi:
Código:
int *I;
int *N = I+2;
*N == I[2]; //El valor de N equivale al tercer elemento del array I;
Saludos.