Zum Inhalt springen

Nachtschatten09

Mitglieder
  • Gesamte Inhalte

    5
  • Benutzer seit

  • Letzter Besuch

  1. :hells: Okay brauche den Code nicht mehr zu schreiben, habe versehentlich die Adresse der Klassenobjekte ausgegeben. Danke, dass mit der Übergabe war einleuchtend und logisch.
  2. Hallo. Bin in nem C++ Buch darüber gestoßen das ein hängender Zeiger entsteht wenn ich ein Objekt einer Klasse instanziere, dass eine dyn. zugewiesene Zeigervariable enthält und ich dieses Objekt dann einer Funktion übergebe. Sozusagen zerstört der Destruktor der Kopie den Speicherbereich. So, habe dies ausprobiert, stimmt auch, weshalb aber passiert dieses Problem nicht, wenn man das Objekt per new instanziert und dann der Funktion übergiebt? Habs auch ausprobiert, sowohl die Kopie als auch das Original zeigen auf eine andere Adresse, aber warum? Hoffe mir kann jemand auf die Sprünge helfen.
  3. char* test=new char[50]; char* test2=new char[50]; gets(test); for(i=0; i<(strlen(test)+1);i++) { test2[i]=test[strlen(test)-i]; } cout<<"Laenge von test2: "<<strlen(test2); //<--- 0?? ... Warum ist die Länge von test2, 0? Wenn ich mit gets einlese verändert sich die Länge. Auch wenn ich test2 ausgeben würde würde etwas ausgegeben werden, daher frag ich mich warum strlen 0 zurückgibt. Nachtschatten
  4. Danke, hast es mir sehr verständlich erklärt, nur hab ich dazu noch eine Frage: Bei mir funktioniert es aber, also genau umgekehrt. Oder ist mit dürfen etwas anderes gemeint? thx Nachtschatten
  5. Hallo, ich bin gerade beim Thema Zeiger und mein C++ Buch löst nun in mir Verwirrung aus... Was macht der Computer wenn er folgende Zeile durchführt? char* b ="hallo"; ? Ich mein klar ich hab im Endeffekt nen char-array aber warum deklarier ich ihn wie ein zeiger? Heisst ja nicht b zeigt auf "hallo"... Ich hab immer gedacht ein Zeiger zeigt auf eine Speicheradresse eines Objektes... Ich könnte doch gleich : char b[]="hallo"; nutzen, da wäre keine solche Verwirrung. Und warum darf man bei c-strings einfach char* test[] = { "hallo", "welt" }; machen, ohne das ne Fehlermeldung erscheint? Und wie sagt man dazu? Deklaration eines Zeigers des Types char das auf "hallo" und "welt" zeigt oder wie?! wenn ich das selbe mit ints mach erhalte ich nen compilererror. Haben chars etwa ne Sonderberechtigung? Mir ist schon klar das arrays und zeiger eine gewisse Ähnlichkeit haben, allerdings hat sich diese bisher nur so gezeigt: int test[5]={1,2,3,4,5}; int* ptest=test; //ptest zeigt auf erstes Element von test[5], Kann mir bitte jemand auf die Sprünge helfen? Ich glaub ich kauf ein anderes Buch denn ohne Erklärung was da gemacht wird hilft das mir nicht weiter, ich brauch ja auch das Verständnis zu allem. Vielen Dank und Gruß nachtschatten

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...