C - Kopierter Array hat immer unterschiedliche Werte. Wieso?

Gast #4760249
Lesenswert?
• ▲
▼
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
}
#4760278
Lesenswert?
• ▲
▼
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

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