Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Was bedeutet diese Zeile in C++? (https://www.delphipraxis.net/18684-bedeutet-diese-zeile-c.html)

NicoDE 23. Mär 2004 10:27

Re: Was bedeutet diese Zeile in C++?
 
Zitat:

Zitat von Dannyboy
Moin, ich ärgere mich mit beiden Sprachen rum

Index out of bounds...
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.

Tyrael Y. 23. Mär 2004 10:28

Re: Was bedeutet diese Zeile in C++?
 
Zitat:

Nachtrag:
An Deinen Codeschnippseln ist NICHTS dynamisch. Es ist ein statisches Array, ergo
nix mit SetLength, etc.
ähm, was soll ein Array bringen mit einem Feld un dem Wert 0 in diesem Feld?

...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

NicoDE 23. Mär 2004 10:32

Re: Was bedeutet diese Zeile in C++?
 
Zitat:

Zitat von Tyrael Y.
was soll ein Array bringen mit einem Feld

Es hat LENBYTE Felder
Zitat:

Zitat von Tyrael Y.
un dem Wert 0 in diesem Feld?

Nur das erste Feld wird mit 0 initialisiert.
Zitat:

Zitat von Tyrael Y.
also wird es im weiterm Prorammablauf höchtwahrscheinlich vergrößert

Eher unwahrscheinlich, da in C/C++ Konstanten üblicherweise groß geschrieben werden.
Zitat:

Zitat von Tyrael Y.
der Codeschnipsel diente wahrscheinlcih zur Initialisierung des Arrays

...des ersten Elements, s.o.

Nichts für ungut.

Tyrael Y. 23. Mär 2004 10:36

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

NicoDE 23. Mär 2004 10:45

Re: Was bedeutet diese Zeile in C++?
 
Zitat:

Zitat von Tyrael Y.
und ich gehe mal davon aus, ich habe Recht ;)

Mit welchem Deiner zwei Beiträge ?-)

Virchov 23. Mär 2004 10:58

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!

Tyrael Y. 23. Mär 2004 10:58

Re: Was bedeutet diese Zeile in C++?
 
nennt mich Prophet :twisted:

Robert Marquardt 23. Mär 2004 11:01

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;

Dannyboy 23. Mär 2004 11:06

Re: Was bedeutet diese Zeile in C++?
 
Zitat:

Zitat von NicoDE
Index out of bounds...

Sorry, war mein Fehler. :wall:
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:

Zitat von Tyrael Y.
ähm, was soll ein Array bringen mit einem Feld un dem Wert 0 in diesem Feld?

...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

Die Null (0) dient zum initialisieren (siehe NicoDE's Posting). Was "im weiteren Programmablauf" sonst noch so passiert,
weiss man nicht, denn das geht aus Deinem Code im Moment nicht hervor. Vor allem war Deine Frage
nur auf diese Zeile reduziert:
Zitat:

Was bedeutet in c++ folgende Zeile
Bisher ist Dein Array statisch (Konstanten in C sind GROSS), daher in Delphi ...
Delphi-Quellcode:
CONST LENBYTE = <irgend ein integer wert>;
...

Virchov 23. Mär 2004 11:12

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]);
  }


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:09 Uhr.
Seite 2 von 3     12 3      

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