Sida 1 av 1
Arduino nybörjarefråga om Arrays
Postat: 15 mars 2016, 19:38:41
av RadioDJ
Jag har 3 arrays
a, b och c.
a innehåller 1 2 3
b 4 5 6
c 7 8 9
Jag skulle vilja slå ihop dessa till en ny array som i sin tur då ska innehålla 1 2 3 4 5 6 7 8 9.
Hoppas Ni förstår mitt något kryptiska exempel.
Hur gör jag detta??
Re: Arduino nybörjarefråga om Arrays
Postat: 15 mars 2016, 20:17:44
av JanErik
Enda är nog att skapa en ny array 'd' med utrymme för alla tre tidigare. Sedan kopiera in innehållet.
Om innehållet i dem kommer att ändra kan du eventuellt skapa en array av pekare som du sätter att peka på elementen i de tre tidigare.
Bäst att designa programmet att använda bara en stor om det ändå är det tänkta slutresultatet.
Re: Arduino nybörjarefråga om Arrays
Postat: 15 mars 2016, 20:22:50
av Icecap
Kryptisk - båda jag och nej.
En array har ett antal element. Du har 3 arrays med 3 element i varje - men det kunde likaväl ha varit 1 array med 9 element i.
Om vi tar A, B & C som exempel:
int A[3];
int B[3];
int C[3];
Dessa innehåller tillsamman 9 platser varför man kunde göra:
int X[9];
A[0-2] kunde då motsvara X[0-2].
B[0-2] kunde då motsvara X[3-5].
C[0-2] kunde då motsvara X[6-8].
Och man kan faktisk göra detta från början - men nu blir det lite komplicerat.
Kod: Markera allt
struct union
{
struct
{
int A[3];
int B[3];
int C[3];
}
int X[9];
} Z;
Detta skapar då ett gemensamt område där Z.X[] innehåller alla värden men man kan fortfarande komma åt A[], B[] & C[].
Z.A[0-2] motsvarar då även samma variabler som Z.X[0-2]
Z.B[0-2] motsvarar då även samma variabler som Z.X[3-5]
Z.C[0-2] motsvarar då även samma variabler som Z.X[6-8]
Med 'union' säger man alltså att minnesplatsen delas av de variabler som anges, alltså lägger du in ett värde i Z.A[2] läggs det värde in i Z.X[2] på samma gång då de delar platsen i minnet.
Re: Arduino nybörjarefråga om Arrays
Postat: 15 mars 2016, 20:26:56
av RadioDJ
Tack Icecap.
Ska ta och prova din variant.
Re: Arduino nybörjarefråga om Arrays
Postat: 15 mars 2016, 22:18:53
av adent
Kan du ge oss lite mer detaljer om vad du så att säga egentligen är ute efter så kan du kanske få en enklare lösning.
MVH: Mikael