kompilerfehler wenn Funktion gcvt() verwendet

(Firma: Gast) #7840243
Lesenswert?

Alex schrieb:

kennt er die Funktion dtostrf() nicht!

1
#include "stdlib.h"
2

3
int main() 
4
{
5
  char buf[50];
6
  char * str =  dtostrf(3.141592653589793238462643383279502884197169399375, 49, 16, buf);
7
}

avr-gcc-14.2.0 Sowohl in C als auch C++

Alex schrieb:

Ich habe es mit sprintf() probiert und einen RAM-Überlauf bekommen.

Aha?

Alex schrieb:

_sbrk

Hängt mit der dynamischen Speicherverwaltung bzw. Stack zusammen. Ich vermute bei dir läuft ganz was anderes falsch.

#7840359
Lesenswert?

Johann L. schrieb:

AVR-LibC verwendet nirgends sbrk, und es gibt auch kein Modul sbrk.c

So ist es. Und die kennt auch kein gcvt(). Ist also alles gleich doppelt seltsam.

Die Fehlermeldung gibt's aber z.B. bei Toolchains, die newlib als C++ standardlib verwenden. Da muss man dann a) RTFM und danach b) sbrk selber implementieren. Google weiss darüber aber bescheid.

Oliver

OP #7840527
Lesenswert?

Hallo, vielen Dank schonmal für eure Hilfe. Zu euren Fragen:

Welches Target? C oder C++?

C

Um welche Compliler-Version geht es?

Atmel Studio 7.02397, Compiler ist der, den das Studio benutzt. Was wichtiger ist: Ich habe kein Atmel Start und kein ASFx benutzt! Meine Includes: #include "sam.h" #include <stdbool.h> #include <math.h> #include <string.h> #include <stdlib.h> #include <stdio.h>

Welche Libc wird verwendet?

Hui, ARM/GNU Linker-Libraries, da steht nur libm. Ist das OK?

Deswegen verwendet man snprintf.

Werde ich ausprobieren.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren