Koma Array



  • Hallo,

    ich stelle kürzlich fest, das man array's auch mit Komma
    indizieren kann, selbst nach Centaruen -C, bin ich auf
    diese Darstellung noch nicht gestossen! Um so verwirrender
    die Ergebnisse:

    void main(void)
    {
    	BYTE *p=(BYTE *)malloc(2*2); //BYTE *p=(BYTE *) new BYTE[2,2];
    
    	int n(0);
    
    	for(int x(0); x<2; x++)
    	 for(int y(0); y<2; y++)
    	   p[x,y] = n++; //lol ??
    
    	for(int x(0); x<2; x++)
    	 for(int y(0); y<2; y++)
    	   printf("p[%d][%d] = %d\r\n",x,y,p[x,y]); 
    }
    

    Ausgabe:
    p[0][1] = 3
    p[1][0] = 2
    p[1][1] = 3
    Drücken Sie eine beliebige Taste . . .

    Ja Lol.. 😡 und wo ist die NULL ?

    Woher weiß der Kompiler wie es dimensioniert ist, bezüglich wenn
    man malloc verwendet, warum wirft der Kompiler keinen Fehler
    bei:

    char *p=malloc(2);
    p[1,1] = 1;
    

    Danke für Hinweise,
    gruß
    Karsten



  • Hallo,

    bitte informiere dich über den Komma-Operator, der C/C++-Sprachbestandteil ist:

    http://msdn.microsoft.com/en-us/library/zs06xbxh.aspx

    Dann sollte alles klar sein...

    MfG,

    Probe-Nutzer



  • Danke für deinen Link,

    ich habe hier einen Bildverarbeitungsfilter
    der so zweidimensional auf das Array zugreift,
    was meiner Auffassung nach nicht funktionieren sollte.

    Mir ist natürlich klar das

    c=10,n=20

    i = (c,n);

    i==20 ist und n nicht in die Zuweisung einfließt, ich hätte die Frage nicht gestellt ohne selber vorher zu gucken.

    Vielleicht gibt es ja noch mehr Hinweise ?

    Gruß Karsten



  • Dann noch einen Hinweis, gerne: Der Komma-Operator kann (in C++) auch überladen worden sein, wie z.B. hier:

    http://www.mayukhbose.com/tutorials/overloading/comma.php

    gezeigt.

    MfG,

    Probe-Nutzer



  • p[x,y]
    entspricht
    p[y]

    Das ist alles. Keine Magie.



  • genau, so sehe ich das auch.

    Die ganze Irritation ist auch nur entstanden weil hier
    ein Quellentext umgeht der wohl faul ist, sicher kann
    ein Operator auch überladen werden, aber dann 2D Arrays
    damit anzutreiben, ist absurd.

    thx for comment.

    Gruß
    Karsten.



  • kahn schrieb:

    [...] dann 2D Arrays damit anzutreiben, ist absurd.

    Weil ... ?



  • Das Softwareentwickeln bzw, später das Modulieren von
    Vorgängen kommt ohne solche Blockvorrichtung aus, wer es verstanden hat
    sieht die Datenverarbeitung als Strohm den man richtet aber
    nicht zerstückelt.

    Man ist gut bestellt dann höhere Abstraktionen wie basic net und konsorten
    zu verwenden, wenn man das symantisch so auf dem Bildschirm sehen will.

    Der schnelle Zug wird das jedenfalls nicht, und nichts anderes zählt mehr.
    Und ehe das nun in Frage kommt, lassen wir es gut sein. Soll
    mal einjeder seine Software abbilden wie erwünscht, in die Bildverarbeitung
    jedenfalls gehören solche Darstellungen nicht, und schon garnicht um Felder
    damit zu abstrahieren, das untergräbt die Zeigerarithmetik brachial, und
    wenn damit Gigabytes verhandelt werden, wird dies der Sache im Tempo schmerzlich kosten.

    Gruß
    Karsten Schulz



  • . o O ( Könntest bitte mit den harten Zeilenumbrüchen aufhören? )



  • Aufhören mit Umbrüchen, lach.. ich bin nicht mehr aus Deutschland,
    wohne SanJose, da gewöhnt man sich an einfachere Strukturen.



  • Wenn du es nicht kannst, dann lass es doch einfach. Was ist dein Problem?



  • Ich weiß das fast alle Programmierer Geltungssüchtige Kleinkrämer sind, und nur ihre weisen als Gültig erachten, ich sage Dir was, wenn später das erkannt hast, wird deine Software auch viel besser. Du bist ein böser Kautz lächerlich das ich darauf noch antworte du Fotze



  • kahn schrieb:

    sieht die Datenverarbeitung als Strohm

    als was? 😕
    wieso? 😮
    prost!



  • Swordfish schrieb:

    . o O ( Könntest bitte mit den harten Zeilenumbrüchen aufhören? )

    .oO sind sie zu hart, bist du zu weich Oo.



  • @kahn
    Lern erstmal Deutsch, und vor allem lern dich klar auszurdücken.
    Dann werden dich vermutlich mehr Leute ernst nehmen.
    Dein wirres gebrabbel hier ist jedenfalls im besten Falle unverständlich bzw. einfach nur Unsinn.


  • Mod

    Mein Rat an alle: Vergesst die Diskussion einfach...


Anmelden zum Antworten