Problem bei Schiffe versenken

Hey Leute,
ich bin gerade dabei Schiffe versenken in C zu programmieren. Dafür habe ich zunächst einmal sämtliche schleifen etc in die main geschrieben, um zu sehen, ob das ganze so funktioniert wie ich mir das gedacht habe. Das tut es!
Anschließend habe ich angefangen mit dem Erzeugen von Nebenfunktionen das ganze ein wenig übersichtlicher zu gestalten. Dabei ist folgendes Problem aufgetretten:
Nach der Eingabe der Schiffe (Nebenfunktion) funktioniert das ganze noch. Bei der Schussabfrage(Nebenfunktion) erkennt er jedoch nicht mehr, dass eine Schiff in das Array gesetzt wurde. Das Array habe ich dabei in einer eigenen Header-Datei definiert, welche sowohl in der main als auch in sämtlichen nebenfunktionen eingebunden ist.

Woran kann das liegen? Ich bin für jeden Ansatz dankbar. Da ich aber noch Anfänger bin traue ich mich noch nicht so ganz an Strukturen und Pointer ran… geht das auch ohne diese sachen zu lösen?
gern poste ich auch noch mal den quellcode falls das weiter hilft

vielen Dank im Vorraus
Student90

Das Array habe ich dabei in einer eigenen Header-Datei
definiert, welche sowohl in der main als auch in sämtlichen
nebenfunktionen eingebunden ist.

Woran kann das liegen?

Genau daran. Die #include-Direktive kopiert den Inhalt der Header-Datei an die Stelle ihres Auftretens. Damit hast Du eine Kopie der Definition in jeder Deiner Quelldateien.

Lösung: in der Headerdatei nur deklarieren

extern int spielfeld[][];

und in nur einer Datei (z.B. in main.c) tatsächlich definieren.

Gruß
KHK