- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 32

Thema: C: Fragen zu memset, memcpy, malloc

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523
    Zitat Zitat von HaWe Beitrag anzeigen
    genau so ist es (beide arrays sind eigentlich gleich groß) -
    perfekt, danke!

    nun noch eine allerletzte Frage, ebenfalls wieder zu memset:

    für den Fall, dass ich meinen dynamischen buf initialisieren will mit 128 statt mit 0, dann wäre doch vermutlich dieser Befehl dann auch richtig...

    memset( buf, 128, arrlen*sizeof(int16_t) );

    ...
    Nur wenn du in JEDES Byte 128 schreiben willst. Wenn du in jedes Feld (2 Byte <-> int16) 128 schreiben willst, funktioniert das nicht mehr!

    Und der Rückgabewert von malloc() wird für gewöhnlich nicht gecastet. http://stackoverflow.com/questions/6...sult-of-malloc

    mfg

  2. #2
    HaWe
    Gast
    stimmt, ich meinte eigentlich: in jedes int-Feld 128 reinschreiben -
    ich war der Meinung durch den Parameter
    arrlen*sizeof(int16_t)
    würde memset automatisch "arrlen" mal den Wert 128 einfügen.
    Gibt es denn eine schnelle Methode, alle Felder mit 128 zu füllen, außer einzeln, iterativ?

    mit dem gecastet meintest du doch
    (int16_t *) malloc ....
    oder?
    das hatte ich aus einer malloc Funktions-Definition ...:
    http://www.cplusplus.com/reference/cstdlib/malloc/
    (siehe Anwendungsbeispiel weiter unten mit (char *)malloc ! )

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    19.05.2015
    Beiträge
    69
    Zum Cast im Kontext von einem Arduino Sketch ist die Aussage
    Und der Rückgabewert von malloc() wird für gewöhnlich nicht gecastet.
    schlichtweg falsch. In C++ ist ein impliziter Cast wie
    Code:
    int* buf;
    void *ptr;
    
    buf = ptr;
    nicht erlaubt (malloc gibt einen void* zurück). Und da der Sketch C++ Code ist, auch wenn Du im C Stil programmierst, ist das ein Fehler.

    Wenn Du wirklich einen Wert in den Feldern stehen haben willst, mußt Du sie über eine Schleife initialisieren. Da führt kein Weg dran vorbei.

Ähnliche Themen

  1. Problem mit arrays in memset
    Von HaWe im Forum Arduino -Plattform
    Antworten: 0
    Letzter Beitrag: 05.06.2016, 11:39
  2. Tauchroboter (Fragen über Fragen)
    Von Michi Unfried im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 12
    Letzter Beitrag: 20.02.2014, 21:03
  3. Rasenmähroboter fragen zur lenkung und mehr fragen :-)
    Von andiwalter im Forum Staubsaugerroboter / Reinigungs- und Rasenmähroboter
    Antworten: 11
    Letzter Beitrag: 11.05.2009, 18:25
  4. miniparser + malloc + speicherproblem?
    Von PCMan im Forum C - Programmierung (GCC u.a.)
    Antworten: 8
    Letzter Beitrag: 09.01.2009, 14:03
  5. Fragen über Fragen - Schrittmotor
    Von Karierteshorts im Forum Motoren
    Antworten: 4
    Letzter Beitrag: 23.03.2005, 08:54

Berechtigungen

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

LiFePO4 Speicher Test