[C] Problema con gli array
Salve ho un esercizio nel quale mi viene richiesto questo:
"Attraverso una funzione denominata genconv generare in maniera casuale una coppia di coordinate
$(x_i, y_i)$, e salvarle in un vettore denominato pcoord di tipo e dimensioni opportune."
Io per generare le coordinate x e y e assegnarle a un vettore ho sempre utilizzato due array separati. In questo caso come devo fare? Utilizzare un array bidimensionale?
Grazie e buona serata.
"Attraverso una funzione denominata genconv generare in maniera casuale una coppia di coordinate
$(x_i, y_i)$, e salvarle in un vettore denominato pcoord di tipo e dimensioni opportune."
Io per generare le coordinate x e y e assegnarle a un vettore ho sempre utilizzato due array separati. In questo caso come devo fare? Utilizzare un array bidimensionale?
Grazie e buona serata.
Risposte
"SimoneSc":
In questo caso come devo fare? Utilizzare un array bidimensionale?
Ciao, effettivamente la cosa più semplice potrebbe essere utilizzare una matrice 2xN, ma volendo puoi anche utilizzare un vettore di 2N elementi in cui le coppie di coordinate possono essere associate in vario modo:
- x y x y x y x y x y
- x x x x x y y y y y
...
P.S.
Non hai ancora studiato le struct?
No purtroppo non l'ho ancora fatte. Credo che proverò a salvare in un unico array perché poi devo verificare che queste coordinate rispetto determinate condizioni e non saprei come farlo con un array bidimensionale 
Infatti dovrei riuscire a scrivere una funzione che mi genera delle coordinate x e y casuali e le salva appunto in questo array chiamato pcoord e poi dovrei scrivere un'altra funzione che prende in input questo array e verifica delle condizioni.
Se mi deste un input dal quale partire ve ne sarei grato!

Infatti dovrei riuscire a scrivere una funzione che mi genera delle coordinate x e y casuali e le salva appunto in questo array chiamato pcoord e poi dovrei scrivere un'altra funzione che prende in input questo array e verifica delle condizioni.
Se mi deste un input dal quale partire ve ne sarei grato!
In sostanza suppongo che tu debba creare una funzione dichiarata come:
o anche senza [inline]pcoordSize[/inline]. Sbaglio? Il valore di ritorno potrebbe anche essere qualche forma di segnalazione di eventuali errori.
Nota che si deve avere [inline]N * 2 <= pcoordSize[/inline].
Per usare un array di vettori bidimensionali, basterebbe esare:
Dal punto di vista del codice assembly creato non dovrebbe cambiare nulla.
void genconv( unsigned int N, int pcoord[], unsigned int pcoordSize );
o anche senza [inline]pcoordSize[/inline]. Sbaglio? Il valore di ritorno potrebbe anche essere qualche forma di segnalazione di eventuali errori.
Nota che si deve avere [inline]N * 2 <= pcoordSize[/inline].
Per usare un array di vettori bidimensionali, basterebbe esare:
void genconv( unsigned int N, int pcoord[][2], unsigned int pcoordSize );
Dal punto di vista del codice assembly creato non dovrebbe cambiare nulla.