4 Stimmen

Hinzufügen von zwei Arrays?

In der Arduino-IDE möchte ich die Inhalte zweier vorhandener Arrays wie folgt hinzufügen:

#define L0 { {0, 0, 0, 0}, {0, 0, 0, 1}, {0, 0, 0, 0} }
#define L1 { {0, 0, 0, 1}, {0, 0, 0, 0}, {0, 0, 0, 0} }

soll zu

   int myarray[3][4] = { {0, 0, 0, 1}, {0, 0, 0, 1}, {0, 0, 0, 0} }

Wie gehe ich dabei vor?

Danke!

2voto

P.P Punkte 111806

Ich denke, du bist verwirrt darüber, wie du auf die Arrays L0 und L1 zugreifen kannst, da sie als Makros definiert sind. Weise ihnen einfach Arrays zu, da der Präprozessor sie einfach ersetzen wird:

int l[][4]=L0;
int m[][4]=L1;

Der Präprozessor wird L0 und L1 mit ihren Werten ersetzen und der Compiler wird sie nur als folgendes sehen:

int l[][4]={ {0, 0, 0, 0}, {0, 0, 0, 1}, {0, 2, 0, 0} };
int m[][4]={ {0, 0, 0, 5}, {0, 0, 0, 6}, {0, 0, 7, 0} };

Jetzt kannst du l & m verwenden, um auf die Elemente des Arrays zuzugreifen. Von hier aus sollte es einfach genug sein, die beiden Arrays hinzuzufügen :)

2voto

Steztric Punkte 2672

Versuche dies:

const int a[3][4] = { {0, 0, 0, 0}, {0, 0, 0, 1}, {0, 0, 0, 0} };
const int b[3][4] = { {0, 0, 0, 1}, {0, 0, 0, 0}, {0, 0, 0, 0} };

int c[3][4];

const int* pa = &a[0][0];
const int* pb = &b[0][0];
int* pc = &c[0][0];

for(int i = 0; i < 3 * 4; ++i)
{
    *(pc + i) = *(pa + i) + *(pb + i);
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X