C - Kopierter Array hat immer unterschiedliche Werte. Wieso?

Gast #4760249
Hallo Leute,
das ist mein Beispiel
1
#include <stdio.h>
2

3
int main()
4
{
5
    char cmd[9] = {0xFF,0x01,0x86,0x00,0x00,0x00,0x00,0x00,0x79};
6
    
7
    char te[9];
8
    
9
    unsigned int i;
10
    for(i = 0; i < 9; i++){
11
        te[i] = cmd[i];
12
    }
13
    
14
    printf("%d\n", te);
15

16
    return 0;
17
}

Die Ausgabe sieht immer unterschiedlich aus
1
sh-4.3$ main                                                                                                                                      
2
-880411616                                                                                                                                        
3
sh-4.3$ main                                                                                                                                      
4
1994154784                                                                                                                                        
5
sh-4.3$ main                                                                                                                                      
6
-1579372928                                                                                                                                       
7
sh-4.3$ main                                                                                                                                      
8
1091698064                                                                                                                                        
9
sh-4.3$ main                                                                                                                                      
10
1277292064                                                                                                                                        
11
sh-4.3$ main                                                                                                                                      
12
-1411712752                                                                                                                                       
13
sh-4.3$ main                                                                                                                                      
14
1314260048

Meine Frage ist was ist hier falsch?

Es ist nur ein Beispiel und es ist wichtig, dass die Bytes einzeln 
kopiert werden. In meinem Projekt bekomme ich die Bytes über UART 
einzeln und muss diese in ein Array speichern (so stelle ich mir das 
zumindestens vor).

Das ist die tatsächliche Funktion, wo ich das einbauen will
1
static void ICACHE_FLASH_ATTR loop(os_event_t *events) {
2
  int c = uart0_rx_one_char();
3
  if(c != -1) {
4
   //uart_tx_one_char(c);
5
   os_printf("%02x", c);
6
  }
7
}
Gast #4760262
okay, jetzt verstehe ich. Wenn ich sage printf("%d\n", cmd[1]), dann 
bekomme ich den Wert. Was muss ich eingeben, damit ich den Werte vom 
kompletten Array bekomme?
#4760278
de1m schrieb:
> okay, jetzt verstehe ich. Wenn ich sage printf("%d\n", cmd[1]), dann
> bekomme ich den Wert. Was muss ich eingeben, damit ich den Werte vom
> kompletten Array bekomme?

Du hast ein array of char. Diese chars kannst du jetzt einzeln ausgeben 
(siehe letzte zwei Antworten). Falls das nicht das ist was du willst 
müsstest du sagen in welchen Datentyp das array umgewandelt werden soll 
und was die Umwandlungsvorschrift ist.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.