|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Mar 2006
Messaggi: 131
|
[C]scrittura di matrici di dimensione arbitraria su pipe...
a seconda della richiesta del client,il server ha un vettore di puntatori a struct di tipo MATRICE,ciascuna inizializzata con tutti gli elementi,di tipo double
nel caso il client voglia la stampa di una delle matrici dell'insieme,ho bisogno di 1-estrarre ogni elemento dalla matrice puntata dal pointer corrispondente alla matrice cercata nell'insieme 2-salvare tutto su una stringa,col giusto formato 3-scrivere sulla pipe il tutto il problema sta nel fatto che la mia stringa(quella che andrò a rispedire al client con la matrice scritta sopra) deve cambiare dinamicamente non solo rispetto al numero degli elementi,e questo non sarebbe un problema,ma anche rispetto alla grandezza di ciascun numero non posso fare una malloc iniziale perchè il numero dei char rispetto alla grandezza in caratteri del numero estratto può cambiare... suggerimenti? (non pretendo righe di codice,è giusto per discuterne e aiutarmi a ragionare) grazie! |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Invia la matrice sulla pipe in binario...ci penserà dopo l'altro processo a metterla in una stringa.
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Mar 2006
Messaggi: 131
|
ok,quindi per metterlo sulla pipe però nel caso voglia farlo con una write sola dovrei
1-inizializzare un array di double grande quanto tutti gli elementi della matrice 2-scriverceli 3-poi scrivere il tutto sulla pipe.... dato che la write vuole la lunghezza del buffer,come faccio a calcolarla dall'array di double?la strlen dovrebbe funzionare ugualmente.. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Attenzione...non puoi lavorare con i puntatori (e quindi con la memoria dinamica). Devi andare a scrivere double per double sulla pipe. E se la lunghezza è variabile devi trasmettere prima la lunghezza della sequenza (o meglio ancora la dimensione della matrice).
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:05.