Was bedeutet diese Zeile in C++?
Moin, Allerseits!
Kleene Frage: Was bedeutet in c++ folgende Zeile? Wird es hier ein Array definiert und dessen variable einen Wert 0 zugschhrieben? int Histogram[LENBYTE]={0}; Vielen Dank! |
Re: Was bedeutet diese Zeile in C++?
Bin mir absolut nicht sicher weil ich kein C++ kann, aber ich denke das der Code die Variable LENBYTE durch abschneiden der Nachkommastellen in eine Ganzzahl/Integer umwandelt, wenn die Anweisung fehlschlägt ist das Ergebnis null
EDIT was sabbel ich hier für nen Stuss... kann gar nicht passen, wer lesen kann ist klar im Vorteil... keine Ahnung, was es nun genau macht, aber das mit Ganzzahlumwandlung passt auf jeden Fall! |
Re: Was bedeutet diese Zeile in C++?
Ja,
es wird ein Array of int deklariert und dem Feld mit dem Index LENBYTE(wird ne Konstante sein, da Konstanten überlicherweise in c++ groß geschrieben werden) die Zahl 0 zugewiesen. Da es gerade deklariert wird, wird wahrscheinlich LENBYTE 0 sein. @Jörn :wiejetzt: :gruebel: |
Re: Was bedeutet diese Zeile in C++?
Na gut *gg*
Sollte mich aus so was raushalten, wenn ich nix davon verstehe... :duck: |
Re: Was bedeutet diese Zeile in C++?
Danke, aber ich glaube doch, es machht was ganz anderes. Na jut. :)
|
Re: Was bedeutet diese Zeile in C++?
Danke Tyrael!
Könntest du mir einen Tip geben, wie das in D auszusehen hat? Also ich hab folgendes gemacht:
Delphi-Quellcode:
geht aber nicht... :(var LENBYTE: integer; Histogram: array of integer; //= {0}; //Brightness Histogram for this frame Histogram[LENBYTE]:=0; |
Re: Was bedeutet diese Zeile in C++?
Zitat:
Delphi-Quellcode:
var
Histogram: array [0..LENBYTE - 1] of Integer; begin Histogram[0] := 0; |
Re: Was bedeutet diese Zeile in C++?
Es handelt sich höchstwahrscheinlcih um ein dynamisches Array, da ein Array mit einem Feld und dem Wert 0 in diesem Feld ziemlich wenig Sinn hätte...
also...
Delphi-Quellcode:
im weiterem Programmablauf musst du entsprechend dem c++ Code das Array mit SetLength vergrößern.
const LENBYTE = 0;
... var Histogram : array of Integer; begin SetLength(Histogram, 1); Histogram[LENBYTE] := 0; ... end; |
Re: Was bedeutet diese Zeile in C++?
vielen Dank! :lol:
|
Re: Was bedeutet diese Zeile in C++?
Moin, ich ärgere mich mit beiden Sprachen rum und übersetze das so:
Delphi-Quellcode:
Nachtrag:
CONST LENBYTE = <irgend ein integer wert>;
Histogram : Array[0..LENBYTE-1] of Integer; // Die Arrays in C++ fangen bei 0 (Null) an! begin Histogram[LENBYTE]:=0; // Definition in Delphi so end. An Deinen Codeschnippseln ist NICHTS dynamisch. Es ist ein statisches Array, ergo nix mit SetLength, etc. GRUSS DANNYBOY |
Re: Was bedeutet diese Zeile in C++?
Zitat:
Code:
Histogram : Array[0..[color=red]LENBYTE-1[/color]] of Integer; // Die Arrays in C++ fangen bei 0 (Null) an!
begin Histogram[[color=red]LENBYTE[/color]]:=0; // Definition in Delphi so end. |
Re: Was bedeutet diese Zeile in C++?
Zitat:
...also wird es im weiterm Prorammablauf höchtwahrscheinlich vergrößert und neue Werte werden zugewiesen der Codeschnipsel diente wahrscheinlcih zur Initialisierung des Arrays, also wahrscheinlcih doch dynamisch |
Re: Was bedeutet diese Zeile in C++?
Zitat:
Zitat:
Zitat:
Zitat:
Nichts für ungut. |
Re: Was bedeutet diese Zeile in C++?
Virchov wird ja wissen was im weiterem Programmablauf noch mit dem Array passiert und ich gehe mal davon aus, ich habe Recht ;)
..wird sich ja zeigen, wenn Virchov weiteres postet |
Re: Was bedeutet diese Zeile in C++?
Zitat:
|
Re: Was bedeutet diese Zeile in C++?
Ich bestätige, das ist ein DYNAMISCHES Array, mit dessen Größe weiter in der Routine rumgespielt wird!
|
Re: Was bedeutet diese Zeile in C++?
nennt mich Prophet :twisted:
|
Re: Was bedeutet diese Zeile in C++?
int Histogram[LENBYTE]={0};
Es wird ein array von Integern namens Histogram der Laenge LENBYTE deklariert und das erste Element aka Histogram[0] mit 0 initialisiert. Der Name LENBYTE laesst auf eine Benutzung in der Art von Delphi ShortString schliessen. LENBYTE ist vermutlich irgendwo anders als #define LENBYTE 256 definiert. (256 hab ich mir gerade ausgedacht). Es werden wie bei Delphi eigentlich alle Werte des arrays mit 0 initialisiert, aber initialisierte Variablen landen in einem anderen Programmsegment als uninitialisierte. Delphiaequivalent:
Delphi-Quellcode:
const
LENBYTE = 256; var Histogram: array [0..LENBYTE-1] of Integer; |
Re: Was bedeutet diese Zeile in C++?
Zitat:
Es sollte eigentlich so sein:
Delphi-Quellcode:
CONST LENBYTE = <irgend ein integer wert>;
Histogram : Array[0..LENBYTE-1] of Integer; // Die Arrays in C++ fangen bei 0 (Null) an! begin Histogram[0]:=0; // Definition in Delphi so und diesmal richtig. :-) end. Zitat:
weiss man nicht, denn das geht aus Deinem Code im Moment nicht hervor. Vor allem war Deine Frage nur auf diese Zeile reduziert: Zitat:
Delphi-Quellcode:
CONST LENBYTE = <irgend ein integer wert>;
... |
Re: Was bedeutet diese Zeile in C++?
Tja, es wird dann später zB folgendes passieren:
Delphi-Quellcode:
//Calculate probability from histogram for (t=0;t<LENBYTE;t++){ p[t]=((double)Histogram[t]/(double)numPixels); mT += (t*p[t]); } |
Re: Was bedeutet diese Zeile in C++?
Zitat:
|
Re: Was bedeutet diese Zeile in C++?
Zitat:
Delphi-Quellcode:
for t := 0 to LENBYTE - 1 do
begin p[t] := Double(Histogram[t]) / Double(numPixels); Inc(mT, t * p[t]); end; |
Re: Was bedeutet diese Zeile in C++?
Zitat:
|
Re: Was bedeutet diese Zeile in C++?
mir auch :roll:
da in Delphi Deklaration
Delphi-Quellcode:
und in C++
meinArray: array[zahlAnfang..zahlEnde] of TeinTyp
einTyp meinArray[LängeMeinesArrays]; ..und wie soll man da sagen welcher Index am Anfang steht? |
Re: Was bedeutet diese Zeile in C++?
Zitat:
Zitat:
|
Re: Was bedeutet diese Zeile in C++?
Zitat:
(gilt dann aber für alle Arrays des Types - mit Templates könnte man es vielleicht so drehen, dass er nur für den deklarierten Fall gilt... aber das ist dann eher Overkill) |
Re: Was bedeutet diese Zeile in C++?
Zitat:
löl, mit Biegen und Brechen geht alles (besonders in C++) :roll: |
Re: Was bedeutet diese Zeile in C++?
Zitat:
machen, wenn sie auch leichter zum selben Ziel führen? :gruebel: Ich habe mir C++ lediglich angeeignet, weil ich dazu gezwungen war (beruflich). Ansonsten hätte ich das gelassen. |
Re: Was bedeutet diese Zeile in C++?
Oh sorry, mein Fehler. Mein damaliger Bauinformatik Prof, hat das Array immer um eins größer gemacht und dann in der Schleife mit eins angefangen zu zählen. Fragt mich aber bitte nicht warum. :roll:
|
Re: Was bedeutet diese Zeile in C++?
also ich kann nur zustimmen (direkt in 2 sachen :-D ):
1) array sind in c von 0 bis zum angegebenen wert (lenbyte) 2) auch ich meine, das so statische arrays mit integern deklariert werden, und mit dem zusatz hinten histogram[0] auf 0 gesetzt wird |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz