Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Abbiamo potuto mettere le mani in anteprima sul nuovo monitor MSI dedicato ai giocatori: un mostro che adotta un pannello QD-OLED da 26,5 pollici con risoluzione 2560 x 1440 pixel, frequenza di aggiornamento fino a 500 Hz e tempo di risposta di 0,03 ms GtG
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-06-2003, 14:52   #1
alderighi
Senior Member
 
L'Avatar di alderighi
 
Iscritto dal: Sep 2002
Città: vinci-spicchio
Messaggi: 530
assegnazione indirizzo a un puntatore

Con dei miei amici dopo aver fatto i puntatori in C a scuola abbiamo pensato di fare un programma che scancellasse casualmente parti di memoria ram, volendo vedere come si comportava un computer e volendo fare degli scherzi .

Il codice è questo:

# include <conio.h>
# include <stdio.h>
# include <string.h>
# include <iostream.h>
# include <dos.h>
# include <stdlib.h>
//Alderighi Matteo III A inf
int tempo,*p,n=0;
void main()
{
printf("Dammi ogni quanti secondi vuoi pulire la ram? ");
scanf("%d",&tempo);
clrscr();
printf("Pulitura casuale della ram ogni %d secondi",tempo);
randomize();
for(p=0000;n<1000;(p=p+random(10000)),n++)
{
printf("\nPulitura casuale %d, indirizzo %x",n,p);
free(p);
sleep(tempo);
}
getch();
}
Qual'è la sintassi, il modo, l'operatore logico per assegnare un indirizzo digitato da tastiera o messo da me nel codice a mano ad un puntatore,
ho provato con p=9000 ma non funziona, funziona solo p=0 .
Aiutatemi!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
__________________
Intel Pentium DualCore E2140 1,60 GHz , Asus P5LD2 R2.0,Sapphire x600xt 128Mb,hauppauge winTV,2x256Mb Ddr2 Vitesta 533Mhz,western digital caviar 160gb, seagate 20gb 5400giri, maxtor 40gb 7200giri, dvd+-rw gigabyte(BTC) 4x,Samsung writemaster dvd duallayer 18x , edimax wireless<-->router D-link G604T.
alderighi è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2003, 15:00   #2
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
Prova così:

char *p = (char *)9000;
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2003, 15:29   #3
alderighi
Senior Member
 
L'Avatar di alderighi
 
Iscritto dal: Sep 2002
Città: vinci-spicchio
Messaggi: 530
grazie dell'aiuto ora funziona, non miera venuto in mente di fare il cast.
__________________
Intel Pentium DualCore E2140 1,60 GHz , Asus P5LD2 R2.0,Sapphire x600xt 128Mb,hauppauge winTV,2x256Mb Ddr2 Vitesta 533Mhz,western digital caviar 160gb, seagate 20gb 5400giri, maxtor 40gb 7200giri, dvd+-rw gigabyte(BTC) 4x,Samsung writemaster dvd duallayer 18x , edimax wireless<-->router D-link G604T.
alderighi è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2003, 20:02   #4
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Re: assegnazione indirizzo a un puntatore

Quote:
Originally posted by "alderighi"

Con dei miei amici dopo aver fatto i puntatori in C a scuola abbiamo pensato di fare un programma che scancellasse casualmente parti di memoria ram, volendo vedere come si comportava un computer e volendo fare degli scherzi .

Il codice è questo:

# include &lt;conio.h&gt;
# include &lt;stdio.h&gt;
# include &lt;string.h&gt;
# include &lt;iostream.h&gt;
# include &lt;dos.h&gt;
# include &lt;stdlib.h&gt;
//Alderighi Matteo III A inf
int tempo,*p,n=0;
void main()
{
printf("Dammi ogni quanti secondi vuoi pulire la ram? ");
scanf("%d",&amp;tempo);
clrscr();
printf("Pulitura casuale della ram ogni %d secondi",tempo);
randomize();
for(p=0000;n&lt;1000;(p=p+random(10000)),n++)
{
printf("\nPulitura casuale %d, indirizzo %x",n,p);
free(p);
sleep(tempo);
}
getch();
}
Qual'è la sintassi, il modo, l'operatore logico per assegnare un indirizzo digitato da tastiera o messo da me nel codice a mano ad un puntatore,
ho provato con p=9000 ma non funziona, funziona solo p=0 .
Aiutatemi!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Scusa eh, non per qualcosa, ma questo è un programma concettualmente totalmente sbagliato.
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2003, 18:51   #5
mattomatt
Member
 
Iscritto dal: Dec 2002
Messaggi: 122
Concordo completamente con mjordan.
aggiungo che non conosco il verbo "scancellare" e che con il c si possono fare scherzi mooooolto più simpatici ma è meglio nn farli!
mattomatt è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2003, 15:04   #6
alderighi
Senior Member
 
L'Avatar di alderighi
 
Iscritto dal: Sep 2002
Città: vinci-spicchio
Messaggi: 530
Sono disposto ad accettare consigli ( lo so che si poteva agire anche suul'hrad-disk scancellando dati ma non mi interessa ), non capisco tutto questo accanimento contro il mio povero programma che funziona a dovere e concettualmente ho usato le regole basilari.
Comunque se volete dare qualche consiglio , anzi perchè non postate un vostro programma fatto da voi visto che siete tanto esperti e bravi ?!?!?!

Il verbo scancellare è usato moltissimo in Toscana e come si sa il l'italiano deriva dal toscano, inoltre se in un forum uno deve stare attento a tutto e non può scrivere come qli pare, inoltre ho visto gente scrivere molto peggio e usare verbi inesistenti.

Inoltre riporto da vocabolario:
scancellare=Forma intensiva e più espressiva di cancellare.
__________________
Intel Pentium DualCore E2140 1,60 GHz , Asus P5LD2 R2.0,Sapphire x600xt 128Mb,hauppauge winTV,2x256Mb Ddr2 Vitesta 533Mhz,western digital caviar 160gb, seagate 20gb 5400giri, maxtor 40gb 7200giri, dvd+-rw gigabyte(BTC) 4x,Samsung writemaster dvd duallayer 18x , edimax wireless<-->router D-link G604T.
alderighi è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2003, 16:19   #7
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
Semplicemente perchè la free non libera la memoria...ma solamente dealloca uno spazio di memoria allocato dal programma stesso...i valori rimangono comunque lì anche dopo la free...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2003, 16:58   #8
lombardp
Senior Member
 
L'Avatar di lombardp
 
Iscritto dal: Jun 2002
Città: Firenze
Messaggi: 630
Quote:
Originally posted by "cionci"

Semplicemente perchè la free non libera la memoria...ma solamente dealloca uno spazio di memoria allocato dal programma stesso...i valori rimangono comunque lì anche dopo la free...
Si, infatti. La FREE del programma semplicemente non ha alcun effetto. Se poi si è nel caso di sistema operativo con memoria protetta, anche se funzionasse, potrebbe solo deallocare la propria memoria, non certo quella di altri programmi.
__________________
---> Lombardp
CSS Certified Expert (Master Level) at Experts-Exchange
Proud user of LITHIUM forum : CPU technology
Webmaster of SEVEN-SEGMENTS : Elettronica per modellismo
lombardp è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2003, 08:31   #9
alderighi
Senior Member
 
L'Avatar di alderighi
 
Iscritto dal: Sep 2002
Città: vinci-spicchio
Messaggi: 530
Ho capito, grazie!
Quando avvio il programma dopo un po' mi da due o tre errori,
per esempio:
PUNTARAM ha provocato un errore di pagina non valida nel
modulo PUNTARAM.EXE in 01a7:00409e9a.
Registri:
EAX=fffffffe CS=01a7 EIP=00409e9a EFLGS=00010282
EBX=0040e9d8 SS=01af ESP=0064fde8 EBP=0064fdec
ECX=0064f888 DS=01af ESI=0040c100 FS=1aa7
EDX=bffc9490 ES=01af EDI=0040c104 GS=0000
Byte all'indirizzo CS:EIP:
8b 08 f6 c1 02 74 33 8b d0 2b 50 fc 83 e1 fc 83
Immagine dello stack:
0040e9d8 0064fe04 0040119a 00000002 00000000 0040c0b8 00000000 0064fe30 0040b451 00000001 006621a4 006623a4 00000000 8189b4d4 00540000 00000000
__________________
Intel Pentium DualCore E2140 1,60 GHz , Asus P5LD2 R2.0,Sapphire x600xt 128Mb,hauppauge winTV,2x256Mb Ddr2 Vitesta 533Mhz,western digital caviar 160gb, seagate 20gb 5400giri, maxtor 40gb 7200giri, dvd+-rw gigabyte(BTC) 4x,Samsung writemaster dvd duallayer 18x , edimax wireless<-->router D-link G604T.
alderighi è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2003, 09:20   #10
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Quote:
Originally posted by "alderighi"

Ho capito, grazie!
Quando avvio il programma dopo un po' mi da due o tre errori,
per esempio:
PUNTARAM ha provocato un errore di pagina non valida nel
modulo PUNTARAM.EXE in 01a7:00409e9a.
Registri:
EAX=fffffffe CS=01a7 EIP=00409e9a EFLGS=00010282
EBX=0040e9d8 SS=01af ESP=0064fde8 EBP=0064fdec
ECX=0064f888 DS=01af ESI=0040c100 FS=1aa7
EDX=bffc9490 ES=01af EDI=0040c104 GS=0000
Byte all'indirizzo CS:EIP:
8b 08 f6 c1 02 74 33 8b d0 2b 50 fc 83 e1 fc 83
Immagine dello stack:
0040e9d8 0064fe04 0040119a 00000002 00000000 0040c0b8 00000000 0064fe30 0040b451 00000001 006621a4 006623a4 00000000 8189b4d4 00540000 00000000
Appunto e' totalmente sbagliato. In questo programma esistono 4 violazioni. Prima: La memoria va allocata con malloc, realloc o calloc prima di chiamare free(). free() non cancella, dealloca. Per deallocare, bisogna allocare.

Seconda: Generare un indirizzo random ti porta a puntare in uno spazio di memoria al di fuori di quella assegnata dal sistema operativo. Quello che in Windows ti dice pagina non valida, sotto Unix si chiama errore di segmentazione.

Terza: Nel caso i puntatori non causino un segfault puntando al di fuori della memoria allocata dal sistema operativo per il tuo programma, essi sicuramente cancelleranno locazioni di memoria contenenti indirizzi del programma stesso, causando un'autocorruzione.

Quarta: Non puoi danneggiare nessun hard disk in questo modo.

In sostanza, non è che sei arrivato tu a scrivere un garbage collector in 10 righe di codice

mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2003, 15:11   #11
alderighi
Senior Member
 
L'Avatar di alderighi
 
Iscritto dal: Sep 2002
Città: vinci-spicchio
Messaggi: 530
Lo so che in questo modo non si può scancellare nulla dall'hardisk, ma mi riferivo al tuo riferimento di scherzi più belli e pesanti, per fare un programma così bisognerebbe adoprare l'assembler comunque vorrei senza tanti casini fare un programma semplice che ha lo scopo di cancellare parti di ram a caso anche di altri programmi quindi la malloc non serve a nulla(è inutile scancellare un'area da noi allocata non creerà nessun errore), il programma funziona solo che non riesce a scancellare perchè windows interviene prima dando un errore e io che ci posso fare,
se sapete altri modi per scancellare parti di ram allocte da altri programmi senza che windows intervenga ditemelo.
__________________
Intel Pentium DualCore E2140 1,60 GHz , Asus P5LD2 R2.0,Sapphire x600xt 128Mb,hauppauge winTV,2x256Mb Ddr2 Vitesta 533Mhz,western digital caviar 160gb, seagate 20gb 5400giri, maxtor 40gb 7200giri, dvd+-rw gigabyte(BTC) 4x,Samsung writemaster dvd duallayer 18x , edimax wireless<-->router D-link G604T.
alderighi è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2003, 15:13   #12
alderighi
Senior Member
 
L'Avatar di alderighi
 
Iscritto dal: Sep 2002
Città: vinci-spicchio
Messaggi: 530
Lo so che in questo modo non si può scancellare nulla dall'hardisk, ma mi riferivo al tuo riferimento di scherzi più belli e pesanti, per fare un programma così bisognerebbe adoprare l'assembler comunque vorrei senza tanti casini fare un programma semplice che ha lo scopo di cancellare parti di ram a caso anche di altri programmi quindi la malloc non serve a nulla(è inutile scancellare un'area da noi allocata non creerà nessun errore), il programma funziona solo che non riesce a scancellare perchè windows interviene prima dando un errore e io che ci posso fare,
se sapete altri modi per scancellare parti di ram allocte da altri programmi senza che windows intervenga ditemelo.
__________________
Intel Pentium DualCore E2140 1,60 GHz , Asus P5LD2 R2.0,Sapphire x600xt 128Mb,hauppauge winTV,2x256Mb Ddr2 Vitesta 533Mhz,western digital caviar 160gb, seagate 20gb 5400giri, maxtor 40gb 7200giri, dvd+-rw gigabyte(BTC) 4x,Samsung writemaster dvd duallayer 18x , edimax wireless<-->router D-link G604T.
alderighi è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2003, 16:33   #13
lombardp
Senior Member
 
L'Avatar di lombardp
 
Iscritto dal: Jun 2002
Città: Firenze
Messaggi: 630
Quote:
Originally posted by "alderighi"

il programma funziona solo che non riesce a scancellare perchè windows interviene prima dando un errore e io che ci posso fare,
se sapete altri modi per scancellare parti di ram allocte da altri programmi senza che windows intervenga ditemelo.
Quello che volevano e volevo cercare di dirti è che il programma non ha proprio fondamento logico. Windows (ma anche gli altri OS) gestisce ogni applicazione in una vera e propria scatola chiusa (memoria protetta), nel senso che ciascuna applicazione ha "virtualmente" tutta la memoria a disposizione e con tutta dico proprio tutta nel senso che può allocare in tutto lo spazio di indirizzamento teorico. Sarà poi il sistema operativo a "tradurre" l'indirizzo virtuale in quello fisico, secondo i suoi bisogni e in linea di principio variandolo a piacimento in modo trasparente durante l'utilizzo.

Quindi la locazione di memoria 13'456'721 dell'applicazione "pippo" NON COINCIDERA' MAI con la locazione 13'456'721 dell'applicazione "pluto" perché le due locazioni inizialmente identiche sono SEMPRE tradotte in locazioni fisiche DIVERSE.

Per accedere alla memoria di altri processi devi sostanzialmente eseguire codice a livello di kernel, come certi driver di basso livello.
__________________
---> Lombardp
CSS Certified Expert (Master Level) at Experts-Exchange
Proud user of LITHIUM forum : CPU technology
Webmaster of SEVEN-SEGMENTS : Elettronica per modellismo
lombardp è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Ritorno di fiamma tra Apple e Intel: gal...
Horses è stato 'bannato': l'horro...
Truffe finanziarie sui social, scatta il...
Tesla inaugura a Busto Arsizio la postaz...
Barriere autostradali fotovoltaiche: Ana...
Accordo Gruppo FS-Microsoft: l'IA dell'a...
Prezzo mai visto: le Sony WH-1000XM5 Spe...
Microsoft amplierà il suo laborat...
ECOVACS DEEBOT T30C OMNI GEN2 a 349€: co...
Super offerta Amazon: HP OMEN MAX 16 con...
L'offerta nascosta di Very Mobile fa gol...
LEAP 71: completata l'accensione di un p...
Furto di segreti industriali in TSMC: pe...
IBM e Cisco collaborano per sviluppare l...
Scorte RAM in rosso: kit DDR5 128 GB 560...
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: 18:50.


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