Typumwandlung
-
Hallo zusammen,
wohl wieder mal was triviales, aber ich bitte um Erklärung:
Ich möchte den inhalt eines Feldes bool*** in int*** umwandeln?
Ich habe es mit (int***) feld versucht, dabei kamen
allerdings keine Werte 0 und 1 raus.
Da gibts doch bestimmt so nen cast Befehl oder sowas ähnliches!?
Einfach eine Schleife nehmen und jedes Feldelement einzel konvertieren
will ich nicht.Danke im Voraus,
Markus
-
Das geht nicht.
-
Waas, echt nicht???
ALso muß ich doch den umständlichen Weg gehen und
jedes einzelne Element kopieren / casten???
Das muß doch einfacher gehen.
-
nein
-
Und wie das geht! Also, nicht direkt, aber wenn du unbedingt willst... Nun, dü könntest ein feld aus ints anlegen, daas so viele Elemente hat wie dein bool-feld und dann mittels einer for schleife und einem if-block die Elemente der Reihe nach initialisieren.
(Macht aber glaub ich nur bedingt sinn..., wenn dus unbedingt brauchst...)
-
Er hatte gesagt, dass er genau das nicht will.
-
coldAsIce schrieb:
...Ich habe es mit (int***) feld versucht, dabei kamen
allerdings keine Werte 0 und 1 raus...Hat bool etwa einen anderen Aufbau als int? Es sind doch auch 4 byte, oder? Warum kann man dann das Feld nicht als int-Feld interpretieren?
-
Till schrieb:
coldAsIce schrieb:
...Ich habe es mit (int***) feld versucht, dabei kamen
allerdings keine Werte 0 und 1 raus...Hat bool etwa einen anderen Aufbau als int? Es sind doch auch 4 byte, oder? Warum kann man dann das Feld nicht als int-Feld interpretieren?
weil ein bool nicht so groß wie ein int sein muss?
-
Na Hallo,
hätte nicht gedacht dass der Thread noch so Ausmaße annimmt!
Ich hab mich mit abgefunden dass es nicht sinnvoll ist mit int und bool
zu arbeiten und hab einfach alles auf int umgestellt.Ich habe jetzt aber noch eine völlig andere Frage:
Man kann in c++ Objekte ja auf dem heap (also mit new)
sowie statisch erzeugen.Ich bin es jetzt von Java her gewohnt, grundsätzlich Objekte
immer mit new anzulegen.Deshalb meine Frage:
Wann ist es sinnvoll mit new zu arbeiten und wann erzeugt
man Objekte besser statisch???Hab mal irgendwo gelesen, es wäre schlechter Stil in c++ mit
Pointern zu arbeiten, das muß ich aber wenn ich new benutze ja immer tun.Gibt es da bestimmte Regeln, was ist guter Stil und was nicht?
Im Moment mische ich wohl noch stark und weiß nicht ob es immer so
sinnvoll ist, was ich mache.Gruß,
Markus
-
es gibt noch eine dritte nicht zu vernachlässigende möglichkeit: dynamisch auf dem stack. das hat geschwindkeits- und sicherheitsvorteile gegenüber dem heap, nur ist der platz auf dem stack nat. begrenzt und die anzahl der objekte muss zur compilezeit klar sein. ein statisches objekt existiert während (fast) der gesamten laufzeit des programms. welche der möglichkeiten du wählen solltest wird immer von der art des objektes abhängen.
-
coldAsIce schrieb:
Man kann in c++ Objekte ja auf dem heap (also mit new)
sowie statisch erzeugen.Ich bin es jetzt von Java her gewohnt, grundsätzlich Objekte
immer mit new anzulegen.Deshalb meine Frage:
Wann ist es sinnvoll mit new zu arbeiten und wann erzeugt
man Objekte besser statisch???Wenn wir von normalen Objekten reden: Wenn möglich auf dem Stack (das nennt sich automatisch, statisch ist nochmal was anderes.) Wenn nötig mit new (dynamisch).
Der Stack ist auf manchen Architekturen von begrenzter Größe, deshalb kann es sein, dass große Arrays auch dann mit new angelegt werden sollten, wenn der Stack es theoretisch auch täte.
Hab mal irgendwo gelesen, es wäre schlechter Stil in c++ mit
Pointern zu arbeiten, das muß ich aber wenn ich new benutze ja immer tun.Quatsch, Pointer gehören dazu, ohne gehts nicht. Vielleicht hast du gelesen, dass man nicht mit nackten Pointern arbeiten soll, sondern sog. Smartpointer benutzen soll. Aber das ist eine andere Baustelle.