braces around scalar initializer for type 'int'
8 berichten
• Pagina 1 van 1
braces around scalar initializer for type 'int'
De foutmelding (zie titel) krijg ik niet weg.
De exacte foutmelding is:
De code:
Vraag: wat gaat hier fout?
De exacte foutmelding is:
- Code: Alles selecteren
/home/john/Arduino/ff4/ff4.ino: In function 'void loop()':
ff4:23: error: braces around scalar initializer for type 'int'
}, };
^
exit status 1
braces around scalar initializer for type 'int'
De code:
- Code: Alles selecteren
int cube_matrix[3][3][2] = {
{
{{0,0}, {0,0}, {0,0}},
{{0,0}, {0,0}, {0,0}},
{{0,0}, {0,0}, {0,0}}
},
{
{{0,0}, {0,0}, {0,0}},
{{0,0}, {0,0}, {0,0}},
{{0,0}, {0,0}, {0,0}}
},
{
{{0,0}, {0,0}, {0,0}},
{{0,0}, {0,0}, {0,0}},
{{0,0}, {0,0}, {0,0}}
}, };
Vraag: wat gaat hier fout?
Advertisement
Re: braces around scalar initializer for type 'int'
Drie maal drie maal 2 is 18.
Je array kan dus 18 elementen bevatten, maar je hebt drie keer 18. Dus je array uitbreiden.
int cube_matrix[3][3][3][2]
int cube_matrix[][3][3][2]
Je array kan dus 18 elementen bevatten, maar je hebt drie keer 18. Dus je array uitbreiden.
int cube_matrix[3][3][3][2]
int cube_matrix[][3][3][2]
Re: braces around scalar initializer for type 'int'
Het werkt nu beter. Ik heb nog een vraag, welke ik na uren Googlen niet kan beantwoorden (ben duidelijk geen C-goeroe):
Wat wil ik bereiken?
Ik wil een matrix waarbij iedere waarde wederom een (verwijzing naar een) array bevat (deze array bevat vervolgens twee waarden).
Dit wil ik doen door eerst een setje arrays te maken ieder met de betreffende twee waarden (x- en y coordinaat).
Vanuit de matrix wil ik naar die arrays verwijzen zodat ik, door de rows en columns te scannen van de matrix, steeds de bijbehorende (x,y) waarden van het betreffende array kan uitlezen.
In onderstaand voorbeeld zijn a, b, c en d de diverse losse arrays met ieder een x en y waarde.
In 'Matrix' zijn deze arrrays opgenomen. 'Matrix' wordt gescand en per node beschik ik dan over een (x,y) paar.
Onderstaande werkt niet, maar hoe wel?
Wat wil ik bereiken?
Ik wil een matrix waarbij iedere waarde wederom een (verwijzing naar een) array bevat (deze array bevat vervolgens twee waarden).
Dit wil ik doen door eerst een setje arrays te maken ieder met de betreffende twee waarden (x- en y coordinaat).
Vanuit de matrix wil ik naar die arrays verwijzen zodat ik, door de rows en columns te scannen van de matrix, steeds de bijbehorende (x,y) waarden van het betreffende array kan uitlezen.
In onderstaand voorbeeld zijn a, b, c en d de diverse losse arrays met ieder een x en y waarde.
In 'Matrix' zijn deze arrrays opgenomen. 'Matrix' wordt gescand en per node beschik ik dan over een (x,y) paar.
Onderstaande werkt niet, maar hoe wel?
- Code: Alles selecteren
int a[] = {0,1};
int b[] = {2,3};
int c[] = {4,5};
int d[] = {6,5};
int Matrix[2][2] = {
{a, b},
{c, d}
};
void setup() {
Serial.begin(9600);
Serial.println("Ready");
}
void loop() {
for (int y = 0; y < 2; y++) {
for (int x = 0; x < 2; x++) {
int nodeXY = Matrix[x, y];
int element_x = nodeXY[0];
int element_y = nodeXY[1];
Serial.print("Coordinate (");
Serial.print(x);
Serial.print(",");
Serial.print(y);
Serial.print("): ");
Serial.print(element_x);
Serial.print(",");
Serial.println(element_y);
delay(1000);
}
}
}
Re: braces around scalar initializer for type 'int'
als je van die a,b,c,d een structure maakt gaat het wel.
paul deelen
shooter@home.nl
shooter@home.nl
Re: braces around scalar initializer for type 'int'
Ik heb mij ingelezen en heb nu:
Het spreekt voor zich dat ik compleet nieuw ben in dit vlak. De kunst is nu om de COORD uit te lezen. Ik krijg een compiler error op de Serial.println(Matrix[0][0]);
De '&' in de Matrix vindt-ie goed, en els ik deze weghaal klaagt hij. Ik denk dus dat dat in orde is (?)
Heb al veel geprobeerd maar de voorbeelden in Google helpen mij niet.
Graag ontvang ik nog wat verlossende tips...
- Code: Alles selecteren
typedef struct COORD {
int x;
int y;
};
// Node mapping (x,y coordinate pairs)
COORD a = {0, 1};
COORD b = {2, 3};
COORD c = {4, 5};
COORD d = {6, 5};
int Matrix[2][2][2] = {
{&a, &b},
{&c, &d}
};
void setup() {
Serial.begin(9600);
Serial.println("Ready");
Serial.println(Matrix[0][0]);
}
Het spreekt voor zich dat ik compleet nieuw ben in dit vlak. De kunst is nu om de COORD uit te lezen. Ik krijg een compiler error op de Serial.println(Matrix[0][0]);
De '&' in de Matrix vindt-ie goed, en els ik deze weghaal klaagt hij. Ik denk dus dat dat in orde is (?)
Heb al veel geprobeerd maar de voorbeelden in Google helpen mij niet.
Graag ontvang ik nog wat verlossende tips...
Re: braces around scalar initializer for type 'int'
Zoek de verschillen:
cpp code
cpp code
cpp code
int a[] = {0, 1};
int b[] = {2, 3};
int c[] = {4, 5};
int d[] = {6, 5};
int * pMatrix[2][2] = // two-dimensional array with pointers
{
{a, b},
{c, d}
};
void setup()
{
Serial.begin(9600);
Serial.println("Ready");
}
void loop()
{
for (int y = 0; y < 2; y++)
{
for (int x = 0; x < 2; x++)
{
int *pNodeXY = pMatrix[x][y]; // get the right pointer
int element_x = pNodeXY[0]; // the pointer is the same as the array it is pointing to.
int element_y = pNodeXY[1];
Serial.print("Coordinate (");
Serial.print(x);
Serial.print(",");
Serial.print(y);
Serial.print("): ");
Serial.print(element_x);
Serial.print(",");
Serial.println(element_y);
delay(1000);
}
}
}
cpp code
struct COORD {
int x;
int y;
};
// Node mapping (x,y coordinate pairs)
COORD a = {0, 1};
COORD b = {2, 3};
COORD c = {4, 5};
COORD d = {6, 5};
COORD * pMatrix[2][2] = { // two-dimensional array with pointers
{ &a, &b }, // A structure name is a variable not a pointer, use '&'.
{ &c, &d }
};
void setup() {
Serial.begin(9600);
Serial.println("Ready");
Serial.print(pMatrix[0][0]->x);
Serial.print(",");
Serial.println(pMatrix[0][0]->y);
Serial.print(pMatrix[1][1]->x);
Serial.print(",");
Serial.println(pMatrix[1][1]->y);
}
void loop()
{
}
Re: braces around scalar initializer for type 'int'
Ik ga het bestuderen. Ik wil dit snappen.
Dank voor de uitleg!
Dank voor de uitleg!
Re: braces around scalar initializer for type 'int'
& is reference en dat is een pointer dus dat doet de compiler wel alleen komt er niet uit wat je wilt.
kijk maar bij koepel, onthou dat je het goede type houdt.
hou ook in de gaten welke diemnsie je hebt en wilt.
kijk maar bij koepel, onthou dat je het goede type houdt.
hou ook in de gaten welke diemnsie je hebt en wilt.
paul deelen
shooter@home.nl
shooter@home.nl
8 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 14 gasten