Golden Age schrieb:
[...]geht und bei ihm im Debug mode auch[...]
Golden Age schrieb:
[...]Infolgedessen kann er nicht mal mehr Debug machen, da kommt genau die selbe Meldung[...]
Wie nun? Geht im Debug, oder geht nicht?
Außerdem muss das Programm nicht fehlerfrei sein, nur weil es kompiliert. Vermutlich schreibt er irgendwo über Arraygrenzen hinaus.
Das Problem ist, dass der Compiler bei
void foo(MeinTyp & t);
davon ausgeht, dass t durch foo geändert werden soll. Sonst hättest du ja
void foo(const MeinTyp & t);
geschrieben.
Bei der Übergabe mit
{
// MeinTyp ctor
foo(MeinTyp("das ist mein typ");
}
ist MeinTyp("das ist mein typ") eine Konstante und kann nicht geändert werden. Bei
{
// MeinTyp ctor
MeinTyp t ("das ist mein typ");
foo(t);
}
ist t eine Variable und somit ein gültiger Parameter für foo().
Du hast recht MFK.
Ich musste erst mal überlegen, was die Feldgröße mit der Reihenfolge der Deklaration zu tun haben soll.
Aber nun ist der Groschen gefallen. Deklariere ich int i nach dem Array, liegt es im Speicher direkt hinter dem Array. Bitfehlertabelle() trägt in "codeeingabe[5]" (das es ja gar nicht gibt) das Nullzeichen an, das dann fälschlicherweise in int i liegt.
Danke für Eure Antworten, hab wieder was gelernt.
C_Bär
@trivilian:
Danke für den Tipp! Leider habe ich den gleichen Fehler trotzdem
Aber es lag vermutlich doch an Dev-C++.
Habe eine andere Entwicklungsumgebung benutzt, dann hat es geklappt.
Das hätte ich nicht gedacht, denn wenn ich den Code aus cmd heraus kompilieren wollte, hatte ich auch Linkerfehler.
Also mit Codeblocks hats jetzt geklappt.
Vielen Dank für die Hilfe!
Der Code funktioniert leider noch nicht, so wie ich will ^^ aber das hat dann eher mit meinen Fähigkeiten zu tun
Hi,
habe im Internet ein Codeausschnitt für vb gesehen, wo die graue Trennlinie zwischen einzelnen Anweisungsblöcken, die in VS mit + und - aufgeklappt bzw eingeklappt werden können, zu 100 % der Breite des Editors entspricht.
Ich programmiere c++ in vs08, kann aber keine Option finden, die Trennlinie zu verlängern. Momentan ist die Trennlinie für meinen Geschmack viel zu kurz.
Hat da jemand ne Ahnung?
________________________________________________________________________
void func()
{
// ...
}
________________________________________________________________________
void func2()
{
// ...
}
________________________________________________________________________
Hallo nocheinmal,
nachdem gprof mittlerweile funktioniert, kann ich damit bisher meine Programme nur so auswerten, dass ich sehe, welche Funktion, wieviel Zeit beansprucht.
Wenn ich nun also sehe, dass ein Bottleneck von einer spezielle Funktion ausgeht,
möchte ich irgendwie auch die Funktionsinhalte anlaysieren, am besten Zeilenweise.
Aus der manpage bin ich leider nicht schlau geworden. Kann mir jemand einen Tipp geben?
Moin moin,
ich möchte gerne in Geany (ich arbeite unter Linux [Ubuntu 9.04]) QT Bibliotheken einbinden und weiß leider nicht wie das geht.
Sicher könnte ich auch QT Creator nehmen oder auf Kdevelop umsteigen. Das erste gefällt mir eigentlich, das zweite hat mir "noch" zu viele Funktionen. Ich fühle mich mit Geany einfach verdammt wohl beim Programmieren und ich hoffe ihr könnte mir dabei helfen.
Ich hatte es schon mal gelesen, dass es gehen soll. Quelle: http://forum.ubuntuusers.de/topic/c%2B%2B-editor/
6. Beitrag von Sowatt
Danke schon mal
Hi,
kann ich den Compiler so einstellen das er eine Funktion nicht automatisch inline setzt ?
Mein Problem ist das ich die Funktionsadresse mit IDA rausfinden möchte, aber ich bin der Meinung das der Compiler diese immer inline setzt und daher wird sie mir nicht angezeigt.
// Edit
Hat sich erledigt war zu blöd zum lesen
Wenn man sein portables C++-Programm nur auf einer anderen Plattform bauen will, braucht man doch nicht mal ne IDE. Sinnvollerweise schreibt man sich mit einem Multiplattform-Build-Tool ein Script, das man auf jeder Plattforman im Idealfall mit einer Kommandozeile aufrufen kann.
Es ist mir nicht ganz klar, warum man unbedingt eine IDE braucht, um sein Projekt zu bauen. Der Fehler ist ja in diesem Fall nicht in der IDE, sondern in der nicht vorhandenen Projekt-Konfiguration.
Der Fehler wurde also schon gemacht, als man unter Windows entwickelt hat. (nein, Windows ist nicht schuld!)
Wie wäre es, wenn Du ein Build-Tool benutzt, das sowohl unter Linux als auch Windows funktioniert? (z.B. Boost Build 2 oder Scons)
Keine Sorge, C::B ist ja auch unprofessionell. Ist voll verbugged mit irgendwelchen halbfertigen Features, die seit Jahren nicht mehr weiterenwickelt werden, weil die Programmierer lieber neue Features einbauen^^
intellisense von C::B ist der witz des jahrhunderts, nutz einfach visual studio express
Code::Blocks hat die Angewohnheit Programme welche man in der IDE Ausführt, also während der Entwicklung immer offen zu halten.
Wenn du sie nun aber außerhalb der IDE ausführen willst, also wie du sagst über die .exe und aber nicht eingebaut hast, das die Konsole offen bleibt ganz am Ende, passiert ebend das von dir beschriebene.
Also wie Artchi eben schrieb, einfach die Konsole am Ende offen halten, am besten schaust du dazu mal im C++-FAQ da ist eine Möglichkeit beschrieben.
Martin Richter schrieb:
Visual Studio Express 2009 würde bei mir auch nicht starten.
Ich glaube es startet bei niemandem...
<duck&wech>
Doch, mit Windows 2001 hatte ich da keine Probleme...