Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » C Code inC++

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
23.01.2007, 11:14 Uhr
Newcool



Hey ihr,

ich hab mal ne frage, ich muss einen Alten C-Code in den neuen C++ Code um programmieren... und bräuchte mal eure hilfe, weil es bei mir einfach nicht klappen will... wäre nett wenn ihr mir dabei helfen könntet

hier mal der code:


C++:
#include <stdlib.h>
#include <stdio.h>

struct knoten {
    int nummer;
    knoten *links;
    knoten *rechts;
};

void drucken(knoten * start);
knoten *wachsen(int);
int nummer = 0;

int main(void)
{
    knoten *kp = wachsen(2);
    drucken(kp);
    return 0;
}

knoten *wachsen(int tiefe)
{
    knoten *wurzel;
    wurzel = (knoten *) malloc(sizeof(knoten));
    if (tiefe > 0) {
        wurzel->links = wachsen(tiefe - 1);
        wurzel->rechts = wachsen(tiefe - 1);
        wurze->nummer = ++nummer;
    } else {
        wurzel->links = 0;
        wurzel->rechts = 0;
        wurzel->nummer = ++nummer;
    }
    return wurzel;
}

void drucken(knoten * start)
{
    printf("Nr.: %d ", start->nummer);

    if (start->links) {
        drucken(start->links);
    }
    if (start->rechts) {
        drucken(start->rechts);
    }
}


also nochmal danke im vorraus wenn jemand weiterhelfen kann...

Gruß Newcool

Bearbeitung von 0xdeadbeef:

Code mal lesbar eingerückt. (indent ist toll)


Dieser Post wurde am 23.01.2007 um 14:27 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.01.2007, 11:21 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Aha und wobei weiterhelfen und was klappt denn nicht?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
23.01.2007, 11:23 Uhr
Newcool



Also, der code oben ist ja in c geschrieben, und wir müssen ihn jetzt in c++ umschreiben, aber ich hab keine ahnung wie das gehen soll da ich noch ein ziemlicher anfänger bin.

Deswegen wollte ich fragen ob mir da jemand weiterhelfen könnte ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
23.01.2007, 11:31 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Wenn du willst das dir jemand weiterhilft dann musst du auch eine konkrete Frage stellen.
Oder erwartest du das hier jemand deine Hausaufgaben macht?

Wenn du keine Ahnung davon hast dann frage ich mich warum du so eine Aufgabe bekommst.

Dieser Post wurde am 23.01.2007 um 11:32 Uhr von Guybrush Threepwood editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
23.01.2007, 11:37 Uhr
Pler
Einer von Vielen
(Operator)


Funktioniert das überhaupt?
Sieht für mich nicht so aus.

Du sollst bestimmt ne Klasse draus machen oder so.
Dann ersetzt du noch printf und so durch cout und so.
malloc und Co durch new und delete.



C++:
knoten * wachsen(int tiefe)
{
knoten*wurzel;

Woher kommt hier auf einmal knoten und wurzel?



Dieser Post wurde am 23.01.2007 um 12:13 Uhr von Pler editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
23.01.2007, 11:52 Uhr
Newcool



ok also ich brauch nur kurz hilfe wie ich den teil hier umschreiben kann..



C++:
wurzel = (knoten *) malloc(sizeof(knoten));



der rest vom code steht oben falls ihr den braucht.. wäre nett wenn ihr mir das sagen könntet.. oder erklären wäre noch besser


thx Newcool
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
23.01.2007, 13:47 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)



C++:
wurzel = new knoten();

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
23.01.2007, 14:27 Uhr
0xdeadbeef
Gott
(Operator)


Nur so am Rande, der Code ist kein gültiges C. In C hat das so auszusehen:

C++:
typedef struct knoten_ {
  int nummer;
  struct knoten_ *links;
  struct knoten_ *rechts;
} knoten;


...oder du musst halt überall "struct knoten" statt "knoten" schreiben. Oh, und du solltest den mit malloc angeforderten Speicher auch wieder freigeben. Das leckt so wie Sau.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 23.01.2007 um 14:28 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
23.02.2007, 20:55 Uhr
berniebutt



C ist eine Untermenge von C++. Wenn dein Programm unter C gelaufen ist, läuft es somit
auch unter C++. Was sollst du eigentlich umschreiben nach C++? Sieht aus, als solltest
du aus STRUCT eine Klasse machen, in der du auch Funktionen unterbringen kannst. Hilft
nichts, musst erst einmal ein Einführungsbuch über C++ lesen!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
23.02.2007, 23:35 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



Zitat von berniebutt:
C ist eine Untermenge von C++. Wenn dein Programm unter C gelaufen ist, läuft es somit
auch unter C++. Was sollst du eigentlich umschreiben nach C++? Sieht aus, als solltest
du aus STRUCT eine Klasse machen, in der du auch Funktionen unterbringen kannst. Hilft
nichts, musst erst einmal ein Einführungsbuch über C++ lesen!

allgemein mal ein buch lesen wär sinnvoll - vor allem die kapitel "speicherverwaltung"
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: