buongiorno,
un piccolo consiglio, questo passaggio di array a funzioni e pulito, o a lungo andare può creare errori?
codice:
int trasf[16];
int a[16];
void lettura()
{
Blocks0(trasf, 5);
Blocks1(trasf, 6);
Blocks2(trasf, 5);
}
void Blocks0(int transf[], int lung)
{
.
.
.
if (i % 200 == 0)
{
for (int i = 0; i < 5; i++)
{
transf[i] = 0;
}
.
.
.
if (coordinatex0[j] > 270 && coordinatex0[j] <= 310 )
{
inserimento0[0] = coordinatex0[j];
transf[0] = 1;
}
//////////////////////////////////////////////////////////
if (coordinatex0[j] > 220 && coordinatex0[j] <= 270 )
{
inserimento0[1] = coordinatex0[j];
transf[1] = 1;
}
//////////////////////////////////////////////////////////
if (coordinatex0[j] > 120 && coordinatex0[j] <= 210 )
{
inserimento0[2] = coordinatex0[j];
transf[2] = 1;
}
.
.
.
else
{
for (int i = 0; i < 5; i++)
{
transf[i] = 0;
}
}
void Blocks1(int transf[], int lung)
{
.
.
.
if (i % 200 == 0)
{
for (int i = 5; i < 11; i++)
{
transf[i] = 0;
}
.
.
.
if (coordinatex0[j] > 270 && coordinatex0[j] <= 310 )
{
inserimento0[0] = coordinatex0[j];
transf[5] = 1;
}
//////////////////////////////////////////////////////////
if (coordinatex0[j] > 220 && coordinatex0[j] <= 270 )
{
inserimento0[1] = coordinatex0[j];
transf[6] = 1;
}
//////////////////////////////////////////////////////////
if (coordinatex0[j] > 120 && coordinatex0[j] <= 210 )
{
inserimento0[2] = coordinatex0[j];
transf[7] = 1;
}
.
.
.
else
{
for (int i = 5; i <11; i++)
{
transf[i] = 0;
}
}
void Blocks2(int transf[], int lung)
{
.
.
.
if (i % 200 == 0)
{
for (int i = 11; i < 16; i++)
{
transf[i] = 0;
}
.
.
.
if (coordinatex0[j] > 270 && coordinatex0[j] <= 310 )
{
inserimento0[0] = coordinatex0[j];
transf[11] = 1;
}
//////////////////////////////////////////////////////////
if (coordinatex0[j] > 220 && coordinatex0[j] <= 270 )
{
inserimento0[1] = coordinatex0[j];
transf[12] = 1;
}
//////////////////////////////////////////////////////////
if (coordinatex0[j] > 120 && coordinatex0[j] <= 210 )
{
inserimento0[2] = coordinatex0[j];
transf[13] = 1;
}
.
.
.
else
{
for (int i = 11; i <16; i++)
{
transf[i] = 0;
}
}
void trasferimento(int a[], int trasf[])
{
for(int i=0; i<16; i++)
{
a[i] = trasf[i];
}
ossia tre funzioni che modificano posizioni differenti dello stesso array, quindi blocks0 modifica dalla 0 alla 4, blocks1 dalla 5 alla 11, blocks2 dalla 11 alla 15 del array trasf, il quale poi trasferisce tutto in a[] e tutto logico, oppure ci sono osservazioni che ho trascurato?
grazie mille