RajHid schrieb:
verschiedenen Klammerungen bringen auch keine besserung.
So?
Dann hast du aber nicht genügend 'Klammerungen' ausprobiert.
Es sieht so aus, dass du mit ZEILENZAHL+SPALTENZAHL schon Compilezeitkonstanten vorliegen hast, die kannst du für die Parameter nutzen,
void schiffupdate(char screen[][SPALTENZAHL],int *HorizontalMove,int *VerticalMove)
oder äquivalent
void schiffupdate(char screen[ZEILENZAHL][SPALTENZAHL],int *HorizontalMove,int *VerticalMove)
Dann kannst du einfach mit screen als Array hantieren,
screen[zeilenindex][spaltenindex]
Deine Laufbereiche sind falsch,
for(i=1;i<=ZEILENZAHL-*VerticalMove;i++){
for(j=1;j<=SPALTENZAHL;j++){
Arrayindexe beginnen immer bei 0 und nicht bei 1.