Clemens Passeck schrieb:
Wie wäre es mit pointer-Schubsereien? Also: falls n zwischen 0 und 2 dann: if( *( &(l1[i].x) + (n*sizeof(double)) ) < coord_buf){
unter elegant verstehe ich aber was anderes.
Ja, elegant war das nicht. Das hab ich aber auch nicht behauptet. Es ist zumindest besser als if(){}else{if() ...
...
Das Ganze müsste meiner Meinung nach auch ohne das "&(...) gehen, also quasi nur l1[i] an die Stelle der Klammer.
Du meinst doch sicherlich:
if ( (*(((double*) l1) + i+n)) < coord_buf) {
Und ja, so ähnlich: if( *(l1[i] + (n*sizeof(double))) ) ...
Wobei das Ganze sich eh erledigt hat, denn die mit Abstand beste Lösung kam ja eindeutig schon: double x[3]; anstelle von double x,y,z;
Clemens
PS: Die Pointerschubserei sieht aber wesentlich mehr nach Guru aus, wobei ich auch alles andere als ein Guru bin. ;-) ______________________________________________________________________ XXL-Speicher, PC-Virenschutz, Spartarife & mehr: Nur im WEB.DE Club! Jetzt gratis testen! http://freemail.web.de/home/landingpad/?mc=021130
Clemens Passeck schrieb:
Clemens Passeck schrieb:
Wie wäre es mit pointer-Schubsereien? Also: falls n zwischen 0 und 2 dann: if( *( &(l1[i].x) + (n*sizeof(double)) ) < coord_buf){
Du meinst doch sicherlich:
if ( (*(((double*) l1) + i+n)) < coord_buf) {
Und ja, so ähnlich: if( *(l1[i] + (n*sizeof(double))) ) ...
Ich will ja nicht meckern bezweifle aber, dass das überhaupt funktioniert. Dein erster Vorschlag vergleicht entweder *(void*) mit double oder setzt den Zeiger genau n*sizeof(double) Felder (=n*sizeof(double)*sizeof(double) chars) vor, wenn doch ein double pointer erzeugt wird. Tja und das Letztere addiert eine Zahl zu 'ner Struktur und dereferenziert das dann).
Tobias
lug-dd@mailman.schlittermann.de