Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
La facilità di installazione e la completa automazione di tutte le fasi di utilizzo, rendono questo prodotto l'ideale per molti clienti. Ecco com'è andata la nostra prova in anteprima
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-07-2005, 12:16   #1
swarzy85
Senior Member
 
L'Avatar di swarzy85
 
Iscritto dal: Feb 2003
Città: Milano
Messaggi: 7013
Stampare l'indirizzo dei 4 byte allocati per un intero in C senza cast @ (char*)

Ciao
come da titolo, mi interessa sapere come fare per riuscire a stampare gli indirizzi dei 4 byte consecutivi allocati per un intero, senza utilizzare il cast @ (char*).

Esempio con cast (solo estratto di un programma...giusto per dare un'idea):
Codice:
int i, v[5];

for (i=0; i<5; i++)
{
    v[i]=i;
    printf ("%d %d %d %d", (char*)&v[i]+3, (char*)&v[i]+2, (char*)&v[i]+1, (char*)&v[i]);
}
Senza cast non riesco a farlo...
Scrivendo soltanto v, si ottiene un puntatore costante al primo byte del vettore v.

Ovviamente, se scrivo v+1, verrà esseguita una conversione di tipo e, se sto cercando di stampare il secondo byte dell'intero salvato in v[0], avrò stampato in realtà l'indirizzo di v[1] dato che salterà di 4 byte in 4 byte.

Devo riuscire a stampare i 4 byte corretti per ogni intero, senza usare il cast.

Help
__________________
Presidente comitato mondiale Anti-Troll
La gloria la si deve acquistare, l'onore invece basta non perderlo. (Schopenhauer)
swarzy85 è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2005, 12:46   #2
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Codice:
  int address = &v[i];   // cast implicito
  printf("%d %d %d %d", address + 3, address + 2, address + 1, address);
fek è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2005, 13:26   #3
swarzy85
Senior Member
 
L'Avatar di swarzy85
 
Iscritto dal: Feb 2003
Città: Milano
Messaggi: 7013
Ciao Francesco

ho provato a riscrivere velocemente il programma (era il primo esonero di fondamenti 2 da correggere....in pratica mancavano diversi puntatori e ce n'erano altri messi a caso)

Codice:
#include <stdio.h>
#include <malloc.h>

void alloc (int **, int);
void setta (int *, int);
void stampa_su_file (int*, int);


void main ()
{
	int n;
	int *v=NULL;
	
	printf ("Inserire il numero di elementi: ");
	scanf ("%d", &n);
	alloc (&v, n);
	setta (v, n);
	stampa_su_file (v, n);
	free (v);
}

void alloc (int **v, int n)
{
	*v = (int*) malloc (n * sizeof (int));
}
	
void setta (int *v, int n)
{
	int i;
	for (i=0; i<n; i++)
	v[i] = i;
}

void stampa_su_file (int *v, int n)
{
	FILE *fp;
	int i, address;
	
	fp = fopen ("uscita.txt", "w");

	for (i=0; i<n; i++)
	{
		address = &v[i];
		fprintf (fp, "v[%d] che si trova ai byte numero %d %d %d %d vale = %d\n", i, address+3, address+2, address+1, address, i);
	}
	fclose (fp);
}
Ho fatto come mi hai consigliato e funziona perfettamente
Ieri avevo provato a fare la stessa cosa ma mi dava un errore in compilazione...
appena ho provato a fare ciò che mi hai indicato, mi ha dato il medesimo errore...
in pratica lo compilavo in C++

Grazie ancora
__________________
Presidente comitato mondiale Anti-Troll
La gloria la si deve acquistare, l'onore invece basta non perderlo. (Schopenhauer)
swarzy85 è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2005, 14:10   #4
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da swarzy85
Ciao Francesco
Ciao

Quote:
appena ho provato a fare ciò che mi hai indicato, mi ha dato il medesimo errore...
in pratica lo compilavo in C++

Grazie ancora
Era un errore oppure un warning? Perche' trattare un puntatore come un intero in C++ e' una cosa che non andrebbe mai fatta e molti compilatori lo segnalano con un warning.

Ma perche' vi insegnano cose come queste all'Universita'? Fa il paio con i lucidi che usano i float come parametri per un template.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2005, 14:24   #5
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
Quote:
Originariamente inviato da fek
Ciao



Era un errore oppure un warning? Perche' trattare un puntatore come un intero in C++ e' una cosa che non andrebbe mai fatta e molti compilatori lo segnalano con un warning.

Ma perche' vi insegnano cose come queste all'Universita'? Fa il paio con i lucidi che usano i float come parametri per un template.
guarda che i puntatori si possono tranquillamente usare come "interi" cioè sommando ... è l'algebra dei puntatori ed è impossibile che dia warning


~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2005, 14:47   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Fenomeno85
guarda che i puntatori si possono tranquillamente usare come "interi" cioè sommando ... è l'algebra dei puntatori ed è impossibile che dia warning
Il problema non era l'utilizzo come interi, ma il casting implicito che in C++ va esplicitato...mentre in C funziona senza problemi...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2005, 14:49   #7
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947
A meno di errori grossolani:

Codice:
    int i, v[5];

    for (i=0; i<5; i++)
        printf ("%d %d %d %d\n",++v[i]+(v[i]=i)-i,++v[i],++v[i],v[i]=&v[i]);
NOTE: a) L'esecuzione del codice nella printf si legge da destra verso sinistra.
b) v[i]=i, e' implicitamente assegnato al termine dei "push" sulla printf.
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2005, 15:34   #8
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da repne scasb
A meno di errori grossolani:

Codice:
    int i, v[5];

    for (i=0; i<5; i++)
        printf ("%d %d %d %d\n",++v[i]+(v[i]=i)-i,++v[i],++v[i],v[i]=&v[i]);
NOTE: a) L'esecuzione del codice nella printf si legge da destra verso sinistra.
b) v[i]=i, e' implicitamente assegnato al termine dei "push" sulla printf.
Lo Standard C++ non da' garanzie sull'ordine di valutazione degli argomenti di una chiamata a funzione. Questo codice e' "Undefined" in C++.

Non ricordo a memoria se lo Standard del C da' garanzia sull'ordine di valutazione (mi sembrerebbe molto strano se lo facesse).
fek è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2005, 17:36   #9
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947
Quote:
Originariamente inviato da fek
Lo Standard C++ non da' garanzie sull'ordine di valutazione degli argomenti di una chiamata a funzione. Questo codice e' "Undefined" in C++.

Non ricordo a memoria se lo Standard del C da' garanzia sull'ordine di valutazione (mi sembrerebbe molto strano se lo facesse).
Il passaggio dei parametri puo' avvenire da destra verso sinistra da sinistra verso destra, con allineamento dello stack a carico del chiamante o del chiamato, per registro, o in altri modi piu' o meno esotici.

I due metodi piu' utilizzati sono da destra a sinistra con stack a carico del chiamante, e da sinistra a destra con stack a carico del chiamato. Il secondo metodo si chiama "passaggio di paramentri con convenzione pascal", il primo "standard C". Ci sarebbe da verificare se il primo metodo chiamato "standard C" e' in effetti uno standard del C.

Nonostante cio', esiste comunque la possibilita' di verificare all'interno del codice stesso la modalita' di passaggio dei paramentri sullo stack:

Codice:
{
    a=0;
    a=func(a--,a++)
    if(a>0)
	printf("Da destra a sinistra\n");
    else
	printf("Da sinistra a destra\n");
}

func(int a,int b)

{
	return(a+b);
}
Quindi nel nostro caso (sempre a meno di errori grossolani):

Codice:
{
    int i, v[5];
    a=0;

    a=func(a--,a++)
    if(a>0)
        printf ("%d %d %d %d\n",++v[i]+(v[i]=i)-i,++v[i],++v[i],v[i]=&v[i]);
    else
        printf ("%d %d %d %d\n",v[i]=&v[i],++v[i],++v[i],++v[i]+(v[i]=i)-i);
}

func(int a,int b)

{
	return(a+b);
}
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2005, 19:33   #10
swarzy85
Senior Member
 
L'Avatar di swarzy85
 
Iscritto dal: Feb 2003
Città: Milano
Messaggi: 7013
Quote:
Originariamente inviato da fek
Ciao

Era un errore oppure un warning? Perche' trattare un puntatore come un intero in C++ e' una cosa che non andrebbe mai fatta e molti compilatori lo segnalano con un warning.

Ma perche' vi insegnano cose come queste all'Universita'? Fa il paio con i lucidi che usano i float come parametri per un template.
Era proprio un errore Francesco (il succo era che non poteva convertire un int* in int)
Uso Visual Studio 6.0 come compilatore.

Perchè ci insegnano queste cose? Veramente non ce le hanno insegnate
Per la fine del corso bisognava portare un programma intero in C++ su un argomento a scelta (tra 6 proposti).
Io ho portato un software di gestione aziendale...erano circa 2000 righe di codice; diciamo che ho imparato un sacco di cose (soprattutto l'utilità delle STL in certe occasioni).

Poi, però, all'orale venivano fatte altre domande...domande tipo quella che ho posto io qui.
A me è stato chiesto di stampare gli indirizzi di un intero e l'ho fatto con il cast @ char*.
Poi mi è stato chiesto di farlo senza cast e all'inizio ho detto una cavolata immane. Allora, mentre veniva interrogato un altro ragazzo, dovevo provare a trovare una soluzione. Ho commesso l'errore grossolano di creare un .cpp e quindi mi restituiva errore; di conseguenza, quando il professore mi ha chiesto a che punto fossi, ho risposto che non ero riuscito a combinare nulla.
__________________
Presidente comitato mondiale Anti-Troll
La gloria la si deve acquistare, l'onore invece basta non perderlo. (Schopenhauer)
swarzy85 è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2005, 19:38   #11
swarzy85
Senior Member
 
L'Avatar di swarzy85
 
Iscritto dal: Feb 2003
Città: Milano
Messaggi: 7013
Quote:
Originariamente inviato da cionci
Il problema non era l'utilizzo come interi, ma il casting implicito che in C++ va esplicitato...mentre in C funziona senza problemi...
esatto, dovrebbe essere una situazione analoga a quella che si presenta quando si usa la malloc in C e in C++ (nel primo caso non serve il cast, nel secondo è necessaria....infatti io avevo scritto un .cpp):
Codice:
*v = (int*) malloc (n * sizeof (int));
__________________
Presidente comitato mondiale Anti-Troll
La gloria la si deve acquistare, l'onore invece basta non perderlo. (Schopenhauer)
swarzy85 è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2005, 19:39   #12
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da repne scasb
Il passaggio dei parametri puo' avvenire da destra verso sinistra da sinistra verso destra, con allineamento dello stack a carico del chiamante o del chiamato, per registro, o in altri modi piu' o meno esotici.
No. Standard C++ alla mano, anche questo codice e' illegale, perche' la valutazione dei parametri e il loro passaggio dei possono essere in qualunque ordine, anche del tutto casuale, per lasciare al compilatore il totale controllo sull'ottimizzazione. Il compilatore e' libero di valutare i parametri per la stessa chiamata da sinistra verso destgra una volta, da destra verso sinistra la seconda volta, o in qualunque ordine gli aggrada anche all'interno dello stesso programma.

Qualunque codice il cui corretto funzionamento dipende da una particolare assunzione sull'ordine di valutazione e' "Undefined" e non e' C++.

http://www.gotw.ca/gotw/012.htm

Codice:
    int f( int& x, int y = x ) { return x += y; }
    int g( int& x )             { return x /= 2; }

    int main( int, char*[] ) {
        int i = 42;
        cout << "f(" << i << ") = " << f(i) << ", "
             << "g(" << i << ") = " << g(i) << endl;
Here we run into parameter evaluation ordering again. Since there's no telling the order in which f(i) or g(i) will be executed (or, for that matter, the ordering of the two bald evaluations of 'i' itself), the printed results can be quite incorrect. One example result is MSVC's "f(22) = 22, g(21) = 21", which means the compiler is likely evaluating all function arguments in order from right to left.

But isn't the result wrong? No, the compiler is right... and another compiler could print out something else and still be right, too, because the programmer is relying on something that is undefined in C++.

Ultima modifica di fek : 23-07-2005 alle 19:41.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2005, 19:40   #13
swarzy85
Senior Member
 
L'Avatar di swarzy85
 
Iscritto dal: Feb 2003
Città: Milano
Messaggi: 7013
Quote:
Originariamente inviato da repne scasb
A meno di errori grossolani:

Codice:
    int i, v[5];

    for (i=0; i<5; i++)
        printf ("%d %d %d %d\n",++v[i]+(v[i]=i)-i,++v[i],++v[i],v[i]=&v[i]);
NOTE: a) L'esecuzione del codice nella printf si legge da destra verso sinistra.
b) v[i]=i, e' implicitamente assegnato al termine dei "push" sulla printf.
Ciao
grazie per l'informazione, non conoscevo l'ordine di lettura della printf

Riguardo la tua soluzione:
secondo il tuo ragionamento, visto che la lettura avviene da destra verso sinistra assegni a v[i] il suo indirizzo. In tal modo ti basta incrementare di 1 l'indirizzo con la notazione prefissa del "++".
Quando viene stampato l'ultimo byte (...il primo nella printf), però, perchè incrementi il valore dell'inidirzzo di 1 e aggiungi e sottrai i?

P.S. adesso lo provo
__________________
Presidente comitato mondiale Anti-Troll
La gloria la si deve acquistare, l'onore invece basta non perderlo. (Schopenhauer)
swarzy85 è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2005, 19:41   #14
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da swarzy85
Ciao
grazie per l'informazione, non conoscevo l'ordine di lettura della printf
E continui a non conoscerlo perche' l'ordine e' indefinito e dipende da compilatore a compilatore
fek è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2005, 19:46   #15
swarzy85
Senior Member
 
L'Avatar di swarzy85
 
Iscritto dal: Feb 2003
Città: Milano
Messaggi: 7013
Quote:
Originariamente inviato da fek
E continui a non conoscerlo perche' l'ordine e' indefinito e dipende da compilatore a compilatore
Mhmhm capito
ora provo a vedere cosa succede con il Visual Studio.
Comunque volevo chiederti un'altra cosa: non è possibile trovare una soluzione senza appoggiarsi ad un intero (per fargli salvare l'indirizzo)? In pratica, mi chiedo se si potrebbe ottenere un risultato analogo usando nella fprintf solo l'operatore + per fargli eseguire un cast implicito?

Te lo domando perchè il professore ha provato a darmi un imput dicendomi che in C viene eseguita una conversione di tipo automatica quando si usa l'operatore + in un certo modo.
Sinceramente non riesco a trovare altre soluzioni a parte quella che mi hai indicato tu
__________________
Presidente comitato mondiale Anti-Troll
La gloria la si deve acquistare, l'onore invece basta non perderlo. (Schopenhauer)
swarzy85 è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2005, 19:49   #16
swarzy85
Senior Member
 
L'Avatar di swarzy85
 
Iscritto dal: Feb 2003
Città: Milano
Messaggi: 7013
In questo modo funziona:
Codice:
fprintf (fp, "v[%d] che si trova ai byte numero %d %d %d %d vale = %d\n", i, ++v[i], ++v[i], ++v[i], v[i]=&v[i], i);
__________________
Presidente comitato mondiale Anti-Troll
La gloria la si deve acquistare, l'onore invece basta non perderlo. (Schopenhauer)
swarzy85 è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2005, 19:51   #17
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da swarzy85
Te lo domando perchè il professore ha provato a darmi un imput dicendomi che in C viene eseguita una conversione di tipo automatica quando si usa l'operatore + in un certo modo.
Sinceramente non riesco a trovare altre soluzioni a parte quella che mi hai indicato tu
Hmmm... Francamente non riesco ad immaginare in quale modo potrebbe essere usato l'operatore + per causare un cast implicito a int di un puntatore
fek è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2005, 19:52   #18
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da swarzy85
In questo modo funziona:
Codice:
fprintf (fp, "v[%d] che si trova ai byte numero %d %d %d %d vale = %d\n", i, ++v[i], ++v[i], ++v[i], v[i]=&v[i], i);
Non e' C/C++ per il motivo di prima. Il risultato e' "Undefined" e dipende dal compilatore/giorno della settimana/tempo atmosferico.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2005, 19:56   #19
swarzy85
Senior Member
 
L'Avatar di swarzy85
 
Iscritto dal: Feb 2003
Città: Milano
Messaggi: 7013
Quote:
Originariamente inviato da fek
Non e' C/C++ per il motivo di prima. Il risultato e' "Undefined" e dipende dal compilatore/giorno della settimana/tempo atmosferico.
Si si, ho capito, tranquillo

Si vede che sbatterò la testa contro il muro finchè non troverò un'altra soluzione (o finchè il muro non sarà diventato tutto rosso)

P.S. stamattina non avevo niente da fare e ho scaricato alcuni file .cpp. Ho visto delle librerie tipo dos.h, windows.h e winsock.h che mi ispirano parecchio
Partendo dal presupposto che la programmazione non mi piace nemmeno un pò...sta diventando una sfida personale
__________________
Presidente comitato mondiale Anti-Troll
La gloria la si deve acquistare, l'onore invece basta non perderlo. (Schopenhauer)
swarzy85 è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2005, 20:51   #20
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947
Quote:
Originariamente inviato da fek
No. Standard C++ alla mano............
Non sto parlando di C++ in quanto il messaggio d'aiuto originario chiede: "Stampare l'indirizzo dei 4 byte allocati per un intero in C senza cast @" e non si fa alcun cenno di C++. La mia risposta e' quindi strettamente attinente a quanto chiesto. Se ne deduce che il codice piu' sopra inviato non e' C++ ma C (per la precisione e' C--).
repne scasb è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
Reddit punterà sull'AI per miglio...
Samsung ha obiettivi molto ambiziosi per...
I produttori non faranno sconti sulle me...
Ubisoft potrebbe cedere pezzi se il pian...
Qualcomm potrebbe utilizzare una tecnolo...
Starfield per Nintendo Switch 2 potrebbe...
Un MacBook Pro a -300€, i MacBook Air M4...
Amazon abbassa i prezzi sugli iPhone: sc...
Amazon, ancora sconti sugli smartphone A...
iPhone Air 2 'riciclerà' alcuni c...
Offerta Amazon da non perdere: lo speake...
Nioh 3 debutta alla grande su Steam: pri...
Al centro della Via Lattea ci potrebbe e...
Elon Musk ora guarda alla Luna: SpaceX p...
La Cina ha lanciato nuovamente lo spazio...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 07:14.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v