-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: "new" klappt nicht

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    26
    Beiträge
    522

    "new" klappt nicht

    Anzeige

    Hallo,

    weiß vllt jemand, wieso folgendes nicht klappt:
    Code:
    int main()
    {
    	int* pi;
    	pi=new int;
    	*pi=10;
    	delete pi;
    	while(1);
    	return 0;
    };
    Auf dem PC klappts problemlos, wenn ich jedoch versuche das Programm mit dem GCC zu kompilieren kommt die Meldung cpp:13: undefined reference to `operator new(unsigned int)'" . Wo liegt da das Problem?

    Danke

    MfG Mark

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Du verwendest avr-g++ ?
    Disclaimer: none. Sue me.

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    50
    Beiträge
    1.195
    Weil es keine lipsup++ beim avr-gcc gibt. Sprich:

    Es gibt kein new und delete. Die C++ Implementierung für den AVR ist nicht vollständig. Gibt hier im Forum und bei mikrocontroller.net einige Threads dazu.

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    26
    Beiträge
    522
    Zitat Zitat von SprinterSB
    Du verwendest avr-g++ ?
    Ja.

    Zitat Zitat von ogni42
    Weil es keine lipsup++ beim avr-gcc gibt. Sprich:

    Es gibt kein new und delete. Die C++ Implementierung für den AVR ist nicht vollständig. Gibt hier im Forum und bei mikrocontroller.net einige Threads dazu.
    Gibt es wirklich keine Versionen, die das unterstützen?

    MfG Mark

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    50
    Beiträge
    1.195
    Du kannst Dir die globalen Operatoren ::new und ::delete ja selber schreiben. Für den avr-gcc (bzw. avr-g++) gibt es das nicht. Steht auch so in der FAQ der libc:
    http://www.nongnu.org/avr-libc/user-...#faq_cplusplus

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    26
    Beiträge
    522
    Danke für den Link, ich werd ihn mal genau anschauen.

    MfG Mark

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.11.2004
    Ort
    Karlsruhe
    Beiträge
    223
    Mal unabhängig davon: dynamischer Speicher ist auf einem Mikrocontroller i.a. eine ziemlich schlechte Idee. Und gerade in deinem Beispiel gibts ja nun wirklich keinen Grund nicht alles statisch anzulegen ...

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    26
    Beiträge
    522
    Zitat Zitat von bluebrother
    Mal unabhängig davon: dynamischer Speicher ist auf einem Mikrocontroller i.a. eine ziemlich schlechte Idee. Und gerade in deinem Beispiel gibts ja nun wirklich keinen Grund nicht alles statisch anzulegen ...
    Das oberige Beispiel ist nur eine Reduzierung meins Problems auf ein Minimum. Was ich wirklich mit new und delete anstellen möchte: Ich hab ein Farb-LCD(132x132 Pix). Auf diesem möchte ich sowohl Text als auch Grafik darstellen. Aber Text einfach nur darzustellen reicht mir nicht, ich möchte dass der uC auch weiss, was für Text sich auf dem LCD befindet, damit z.b. beim Löschen des Cursors nicht eine weisse Linie entsteht sondern wirklich der untere Teil des Buchstaben, der zuvor vom Cursor verdeckt wurde(Ich hasse Grafikfehler). Oder aber auch damit ich den Text scrollen kann usw.... Da ich aber wie gesagt auch Grafik darstellen will möche ich eine Funktion OpenConsoleWindow(x,y,Textbreite,Texthöhe) schreiben, die dem Text-Fenster nur soviel Speicherplatz reserviert, wie dieses benötigt. Damit will ich unnötigen Speicherverbrauch vermieden.

    MfG Mark

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    50
    Beiträge
    1.195
    Warum nicht die Zeichen per XOR Darstellen? Dann brauchst Du keinen zusätzlichen Platz und kannst mit erneutem XOR den Hintergrund wiederherstellen.

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    26
    Beiträge
    522
    Dann muss ich aber wissen, welche Pixel gesetzt sind oder nicht, und bei 132x132=17424 Bytes(im 256-Farben-Modus) würde der RAM nicht reichen. Zudem möchte ich den Text ja wie gesagt scrollen können.

    MfG Mark

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •