Originariamente inviato da artedelcorpo
Ciao ragazzi.
Dopo molto tempo lontano dal C mi sono rimesso ad utilizzarlo per
scrivere Plugin per altre piattaforme di sviluppo ma ho subito
incontrato un problema: voglio banalmente costruire un Array di
stringhe contenente un range di indirizzi IP (tipicamente da 1 a 255) a partire da un indirizzo IP passato alla funzione.
Più o meno in questo modo
Ammettiamo di passare l'indirizzo in questo modo
Local_Host_It = "192.168.1."
for ( i = 1, i < 255, i++) {
itoa( i, str, 10 );
strcpy( Local_Host_IP1, Local_Host_IP);
strcat( Local_Host_IP1, str );
Assegnando il valore di Local_Host_IP1 (formato da Local_Host_IP
+ ( 1 < i < 255 )) agli elementi di un array (o di una struttura, o di un Array costruito con le API della piattaforma per la quale sto scrivendo il Plugin) ottengo che yutti gli elementi dell'array hanno lo stesso valore: il valore che assume Local_Host_IP1
nell'ultimo ciclo. Essendo gli elementi dell'array (char *) puntantori alla variabile non mantengono il valore della stessa nel momento in cui gli viene assegnata.
}
1. Mi sono spiegato?
2. Come posso ovviare al problema?
3. Ho sbagliato completamente approccio?
4. Consigli?
Grazie