Addition von Pointern zu Pointern
-
Hallo zusammen!
Ich schreib grad an meinem Programm weiter und jetzt wollte ich zwei Zeiger addieren und das wiederrum in einem Zeiger ablegen!
Geht das?
HILFE
-
du kannst den Inhalt der Adresse auf die die Zeiger zeigen addieren, ja.
die Adressen natürlich nicht
-
Kannst du das mal genauer erklären? Was hast du vor?
Mal ganz von Anfang: Ein Zeiger stellt einer Speicheradresse dar. Den kannst du dereferenzieren, um an die Daten zu kommen, die dort im Speicher stehen, erhöhen/verringern und noch ein paar andere Spielereien - aber du kannst zwei Zeiger NICHT addieren (höchstens die Daten, auf die sie zeigen:
*target = *src1 + *src2;).
-
Ok kein Problem!
Also ich muß folgende Formel einbringeneffW=sqrt(1/nE*(mwert²+mwert²+...)
Ich muß es irgendwie hinbekommen, das ich über nE eine bestimmte anzahl von mwert(en) quadriere und dann addiere!
Das quadrieren habe ich schon hinbekommen:for(j=0; j<nE; j++) { *(summeee+i)+=(*(summen+i)); for(i=0; i<(nW-nE); i++) { *(summen+i) = *(werte+i)*(*(werte+i)); *(summeee+i)+=(*(summen+i)); }//end for }//end forDas mit dem addieren klappt noch ned so gut

-
musst du zeiger verwenden?
wir wäre es mit int, double etc.?
-
Ich muß z.B. 20 Werte eingeben und dann für eine variable Anzahl z.B. von drei Werten die effW bestimmen!
Ich wüßte nicht wie ich das sonst machen soll?
-
Bjoern821 schrieb:
...Ich wüßte nicht wie ich das sonst machen soll?
Eigentlich haben C und C++ für sowas "Container" ... C nur Arrays und C++ zusätzlich noch vector&Co.
Zwar ist die "Plus-Schreibweise"
*(summen+i)äquivalent zu der "Indexschreibweise"
summen[i], letztere finde ich aber viel lesbarer (gerade, wenn man das häufig verwendet und dann noch mit dem "arithmetischen + und *" mischt).
Da könnte man dann aus
*(summeee+i)+=(*(summen+i));Folgendes machen:
summeee[i] += summen[i];oder:
*(summen+i) = *(werte+i)*(*(werte+i));=>
summen[i] = werte[i]*werte[i];Finde ich deutlich übersichtlicher und deswegen "fehlerunanfälliger".
Dazu bräuchtest Du wahrscheinlich nichtmal etwas Anderes an Deinem Programm zu ändern.Die nächste Frage wäre, wie Du Deine Variablen definierst. Als Arrays (
int summen[10];) ?
Wenn Du's dynamischer brauchst, könnte std::vector was für Dich sein:#include <vector> std::vector<int> summen; // füllen mittels "push_back()" summen.push_back(12); summen.push_back(34); summen.push_back(5678); ... // verwenden wie oben: summen[i] += 4;(spart Dir alles new/delete)
Gruß,
Simon2.