Warum wird diese Schleife bei einigen Plattformen und nicht bei anderen ausgeführt?

Ich habe vor kurzem angefangen C zu lernen und ich bin eine Klasse unter mit C als Subjekt. Ich bin derzeit rund um das Spiel mit loops und ich bin in einige merkwürdige Verhaltensweisen, die ich weiß nicht, wie zu erklären.

#include <stdio.h>

int main()
{
  int array[10],i;

  for (i = 0; i <=10 ; i++)
  {
    array[i]=0; /*code should never terminate*/
    printf("test \n");

  }
  printf("%d \n", sizeof(array)/sizeof(int));
  return 0;
}

Auf meinem laptop läuft Ubuntu 14.04, ist dieser code nicht zu brechen. Es läuft bis zur Fertigstellung. Auf meiner Schule computer mit CentOS 6.6, es läuft auch gut. Auf Windows 8.1, wird die Schleife nie beendet.

Was ist noch seltsamer ist, dass wenn ich edit den Zustand der for Schleife: i <= 11 der code nur beendet, auf meinem laptop läuft Ubuntu. Es ist nie beendet in CentOS und Windows.

Kann mir jemand erklären, was passiert in der Erinnerung-und warum die verschiedenen Betriebssysteme läuft der gleiche code unterschiedliche Ergebnisse?

EDIT: ich kenne die for-Schleife geht out of bounds. Ich mache es absichtlich. Ich kann einfach nicht herausfinden, wie das Verhalten können unterschiedlich sein zwischen verschiedenen Betriebssystemen und Computern.

InformationsquelleAutor der Frage JonCav | 2015-06-24

Schreibe einen Kommentar