Array 16*16*16



  • wie ich bereits erwähnte ist der quelltext ineffizient 😉 macht aber meines erachtens sinn, wenn man funktionen hat, die nur EINEN wert zurückliefern, der eine bestimmmte position innerhalb eines mehrdimensionalen feldes bezeichnet. Wenn man von anfang an ein 1d feld verwendet hat man dann keine probleme.

    oder meintest du das man auf ein feld

    int feld[n][m]
    

    auch mit

    feld[o]
    

    zugreifen kann.
    Falls ja, hab ich auch heute wieder was dazu gelernt 😉



  • Ja, in C kannst du durch ein

    int x[2][3];
    

    auch per:

    int i=0;
    for ( ; i<6; ++i)
      x[i] = -587;
    

    durchlaufen. C führt kein run-time range checking durch, im Gegensatz zu C++.



  • GPC schrieb:

    C führt kein run-time range checking durch, im Gegensatz zu C++.

    tztz... versucht da wieder einer mit aller gewalt c++ zu promoten? 🙄
    runtime checks machen beide nicht, und ein c-compiler frisst auch kein

    int x[2][3];
    x[...] = ...;
    

    höchstens so:
    x[0][...] = ...;



  • net schrieb:

    GPC schrieb:

    C führt kein run-time range checking durch, im Gegensatz zu C++.

    tztz... versucht da wieder einer mit aller gewalt c++ zu promoten? 🙄

    tztz... versucht da wieder einer mit aller gewalt c zu promoten 🙄 😉

    Ne, im Ernst. Ich mach das eh nicht, weil's halt auch ziemlicher murks ist, daher juckt mich's nicht, ob das er Compiler erlaubt, oder nicht.

    runtime checks machen beide nicht,

    Du hast doch sicherlich auch nen Link, der das untermauert. Mir war so, dass C++ Compiler das machen. Kann mich in dem Punkt aber auch täuschen, da ich grad nichts finde, was meine Behauptung stützen würde.

    und ein c-compiler frisst auch kein

    int x[2][3];
    x[...] = ...;
    

    höchstens so:
    x[0][...] = ...;

    hm, ne, der gcc hat's bisher immer gefressen. Ob's der 4er auch noch tut, weiß ich nicht, ich hab noch den 3.3.x drauf, aber schon lange nicht mehr probiert, ob's geht.



  • GPC schrieb:

    Du hast doch sicherlich auch nen Link, der das untermauert. Mir war so, dass C++ Compiler das machen. Kann mich in dem Punkt aber auch täuschen, da ich grad nichts finde, was meine Behauptung stützen würde.

    links hab' ich auch nicht, aber aus'm gedächtnis: manche compiler machen solche checks im debugmodus, aber zur definition der sprachen gehört's nicht.



  • eingigen wir uns auf unentschieden und "compilerspezifisches Verhalten" 😃



  • GPC schrieb:

    und ein c-compiler frisst auch kein

    int x[2][3];
    x[...] = ...;
    

    höchstens so:
    x[0][...] = ...;

    hm, ne, der gcc hat's bisher immer gefressen. Ob's der 4er auch noch tut, weiß ich nicht, ich hab noch den 3.3.x drauf, aber schon lange nicht mehr probiert, ob's geht.

    Also das sollte nicht gehen.



  • GPC schrieb:

    eingigen wir uns auf unentschieden und "compilerspezifisches Verhalten" 😃

    nur wenn du versprichst hier nie wieder was über c++ zu schreiben 😉



  • TactX schrieb:

    Also das sollte nicht gehen.

    bei welchem?

    net schrieb:

    GPC schrieb:

    eingigen wir uns auf unentschieden und "compilerspezifisches Verhalten" 😃

    nur wenn du versprichst hier nie wieder was über c++ zu schreiben 😉

    hehe, ich hab ja eh keine Ahnung von C++, also halt ich einfach die Klappe :p



  • GPC schrieb:

    TactX schrieb:

    Also das sollte nicht gehen.

    bei welchem?

    Eigentlich bei allen 😉



  • TactX schrieb:

    GPC schrieb:

    TactX schrieb:

    Also das sollte nicht gehen.

    bei welchem?

    Eigentlich bei allen 😉

    hm, scheint so. Aber ich bin mir sicher, dass derartiger Code schon kompilierte, ich weiß nur nicht mehr, bei welchem Compiler. Verflucht. Ich werd bald mal meine alten Dinosaurier rausziehen und schauen, wo's noch durchgeht. Irgend so'n K&R Compiler wird's schon fressen 😃



  • omg was hab ich angerichtet, ich schreib nie mehr was 😉


Anmelden zum Antworten