Array wird überschrieben???

Hallo zusammen,
habe folgendes Problem:
ich erstelle ein Array in einer include Datei

const char *str_status[] PROGMEM = {
 "WL_IDLE_STATUS",
 "WL_NO_SSID_AVAIL",
 "WL_SCAN_COMPLETED",
 "WL_CONNECTED",
 "WL_CONNECT_FAILED",
 "WL_CONNECTION_LOST",
 "WL_DISCONNECTED"
};

habs auch ohne PROGMEM versucht, und eins in der main

const char* top[] PROGMEM = {"/home/device/BWM01", "/home/device/BWM01M", "/home/device/BWM01T"};

dann gebe ich auf dem Terminal die länge von topics "Serial.println(sizeof(topics);" zum testen aus und da kommt 12? wenn ich es auslese kommet alles aus topics und str_status?

Grüße
Samuel84

Ähnlich:

#include <Streaming.h>

using FlashString = __FlashStringHelper *;

const char meldungen[7][20] PROGMEM =
               {
                 {"Meldung 1"}  , 
                 {"Meldung 2"}  , 
                 {"Meldung 3"}  , 
                 {"das ist 4"}  , 
                 {"das ist 5"}  , 
                 {"AB"}         , 
                 {"Letzter "}
               };

void setup()
{
  Serial.begin(9600);
  Serial << "Start: " << __FILE__ << endl;

  for(const char *m:meldungen)   Serial.println(FlashString(m));

  Serial <<  F("-> ") << FlashString(meldungen[0]) << endl;
  Serial <<  F("-> ") << FlashString(meldungen[6]) << endl;
}

void loop()
{

}

wäre wohl noch zu erwähnen das es um ein ESP8266 geht…sry
bei
#include <Streaming.h>
kommt

exit status 1
Streaming.h: No such file or directory

sizeof() liefert die Anzahl Bytes, die durch die Länge des Datentyps geteilt werden muß.
Wenn alle Strings am Stück ausgegeben werden, dann fehlen da vielleicht Null-Bytes als Ende von Strings?

Streaming

Gruß Tommy

sollte da nicht automatische eine null am ende erzeugt werden?
laut arduino.cc unter array
"Der Compiler zählt die Elemente und erstellt ein Array der entsprechenden Größe."

Samuel84:
wäre wohl noch zu erwähnen das es um ein ESP8266 geht…sry

Das macht bei meinem Programm keinen Unterschied.

Samuel84:
bei
#include <Streaming.h>
kommt

exit status 1

Streaming.h: No such file or directory

Ist auch nur eine Library, die findest du schon…
Und selbst wenn nicht, ist in dem Programm extra auch eine Beispiel Zeile ohne Streaming.


sollte da nicht automatische eine null am ende erzeugt werden?

Werden auch, bei mir 7 Stück.

“Der Compiler zählt die Elemente und erstellt ein Array der entsprechenden Größe.”

Nix dergleichen, die Größe habe ich fest vorgegeben.

hat sich erledigt, vielen dank euch :wink:
mit

sizeof(array)/sizeof(array[0])-1

bekomme ich die anzahl der Elemente im Array...so gehts

Jetzt musst Du nur noch die -1 am Ende erklären; das würde ich gerne noch verstehen.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.