2 Arrays miteinander vergleichen

OP #2756153
Lesenswert?
• ▲
▼
Hi an alle,

versuche gerade diese zuerst angenommene leichte Aufgabe zu bewältigen, 
aber ich nun komme ich absolut nicht weiter.

Ich möchte überprüfen ob 2 Arrays identisch sind.
Falls ja, soll die Zahl 7 an der 7 Segment Anzeige erscheinen.
Falls nein, soll die Zahl 8 an der 7 Segment Anzeige erscheinen.

Irgendetwas scheint aber mit der if Bedingung nicht zu stimmen. Denn es 
wird immer in den If Zweig gesprungen und die 7 angezeigt, egal ob in 
einem der beiden Arrays eine Zahl ändere oder nicht.

Weiß hier jemand von euch weiter? Viele Dank.

Die Werte der 7 Segment anzeige stimmen. Habe dies nochmal überprüft für 
den Fall, dass ich bei 8 und 7 die selben LEDs aktiviert habe. :-)

Mein Codebeispiel habe ich angehängt.
Angehängte Dateien:
Gast #2756395
Lesenswert?
• ▲
▼
aber eigentlich sollte die memcmp sache richtig sein. Da sehen ich 
keinen Fehler.

Sicher das deine Ausgabe für die anzeige richtig gehen?

auf dem PC geht dieser code:
1
int main(void) {
2

3
  // Variables
4
  char u[5] = {1, 2, 3, 4, 6}, v[5] = {1, 2, 3, 4, 5};
5

6

7
  while(1) {
8

9

10
    if (!memcmp(u, v, 5*sizeof(char))){
11
      printf("7\n");
12
    }
13

14
    else{
15
      printf("8\n");
16
    }
17
  }
18
  return 0;
19
}
OP #2756532
Lesenswert?
• ▲
▼
Danke für Eure Antworten. Der "Fehler" lag in der Deklaration des 
Arrays. Wobei ich nicht verstehe warum.

Zuerst hatte ich dem Array seine Werte in geschwungenen Klammern 
zugewiesen.(siehe vorherigen Quellcode) Da klappte es nicht. Erst als 
ich die Werte Zeile für Zeile zuwies, waren die Werte auch wirklich im 
Array.

Hätte nämlich versucht die Werte des Arrays in einer for Schleife 
auszugeben und da kam nichts.

Nun gehen alle Varianten die ich probiert habe.

Für alle die damit auch Probleme haben, hänge ich meinen nun 
funktionierenden Code an.

Mich würde aber abschließend noch interessieren, warum das nur mit einer 
meiner Varianten auf meinem MCU (atmega168) funktioniert? Hat hier 
jemand eine Idee? Vielleicht habe ich was falsch gemacht. Möchte 
nächstes Mal nicht wieder in die selbe Falle tappen.

Danke für Eure Unterstützung.
Angehängte Dateien:
#2756606
Lesenswert?
• ▲
▼
El Nino schrieb:
> Zuerst hatte ich dem Array seine Werte in geschwungenen Klammern
> zugewiesen.(siehe vorherigen Quellcode) Da klappte es nicht

El Nino schrieb:
> Mich würde aber abschließend noch interessieren, warum das nur mit einer
> meiner Varianten auf meinem MCU (atmega168) funktioniert? Hat hier
> jemand eine Idee? Vielleicht habe ich was falsch gemacht. Möchte
> nächstes Mal nicht wieder in die selbe Falle tappen.

Eigenes Makefile?
Persönliche Seite #2756614
Lesenswert?
• ▲
▼
El Nino schrieb:
> Zuerst hatte ich dem Array seine Werte in geschwungenen Klammern
> zugewiesen.(siehe vorherigen Quellcode) Da klappte es nicht. Erst als
> ich die Werte Zeile für Zeile zuwies, waren die Werte auch wirklich im
> Array.

Versuche es mal so:
1
char u[] = {1, 2, 3, 4, 6}, v[] = {1, 2, 3, 4, 5};

Wenn du Arrays so intilisierst, legt der Compiler die Länge des Arrays 
selbst fest.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.