Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Pannello QD-OLED da 32 pollici con risoluzione 4K, frequenza di aggiornamento a 240Hz e tempi di risposta rapidissimi: il Gigabyte MO32U24 evolve il progetto del suo predecessore MO32U e alza ulteriormente l'asticella delle prestazioni. È ancora una volta un monitor indirizzato ai giocatori più esigenti
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
realme 16 5G è un nuovo smartphone con sensore Sony IMX 852 da 50MP sul retro e uno specchio selfie fisico integrato nella camera bar, una prima nel segmento di mercato. Batteria da 6550mAh in un corpo da 8,1mm e 183g, certificazione IP69K e ricarica da 45W completano un pacchetto aggressivo per la fascia media, per uno dei prodotti più interessanti del produttore sul piano commerciale
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Sono ormai definitive le nuove norme del Codice della Strada per i monopattini elettrici. Non solo targa e assicurazione, le regole sono tante e riguardano diversi aspetti, vi spieghiamo come evitare sanzioni che possono essere salate
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-07-2005, 11: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, 11: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, 12: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, 13: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, 13: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, 13: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, 13: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, 14: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, 16: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, 18: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, 18: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, 18: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 18:41.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2005, 18: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, 18: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, 18: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, 18: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, 18: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, 18: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, 18: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, 19: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


Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming Gigabyte MO32U24 OLED: il 4K a 240Hz su un panne...
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Grazie a GLIMPSE-17775 il telescopio spa...
Samsung Galaxy A27 5G è ufficiale...
TCL aggiorna la sua gamma di monitor per...
Anche OPPO avrà uno smartphone co...
La Radeon RX 9070 XT appare su Steam e m...
L'America si ribella ai datacenter: bloc...
'Artificial General Engineer': l'IA di J...
Il drone NASA Dragonfly, che voler&agrav...
Stop immediato a Fable 5 e Mythos 5: il ...
"Prime Day Amazon il 23-26 giugno": sì e...
Oggi 2 super MacBook Pro M5 e M5 Pro, 24...
Tineco Floor One Station S9 Artist: il s...
Raggiunte nuove altitudine e velocit&agr...
Apple Watch Series 11 GPS a 339€ su Amaz...
Come un MacBook, ma con la RTX 5070: MSI...
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: 01:54.


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