Torna indietro   Hardware Upgrade Forum > Software > Programmazione

L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
Abbiamo intervistato Sumit Dhawan, CEO di Proofpoint, per capire come stia cambiando il mondo della sicurezza con l'avvento dell'intelligenza artificiale e con il ritmo sempre più serrato a cui vengono trovate vulnerabilità nel software. Un problema significativo, che richiederà del tempo per essere risolto (o quantomeno arginato)
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
La parola d'ordine al Nextcloud Summit 2026, che si è tenuto a Monaco, è stata "sovranità". Non come è spesso usato questo termine in politica ma, al contrario, come capacità positiva di decidere il proprio destino tecnologico, con modalità collaborative e aperte. L'Europa dice già molto nel mondo open source, che viene visto come mezzo per ottenere la tanto agognata autonomia digitale
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-11-2010, 14:00   #1
Negative_creep
Senior Member
 
L'Avatar di Negative_creep
 
Iscritto dal: Jul 2005
Città: Milano
Messaggi: 1078
[C] Info su struttura dati Heap

Ciao a tutti, vi scrivo per avere un'informazione sugli heap. Avrei bisogno di salvare diversi dati in una struttura che mi consenta di poter costruire un albero binario partendo proprio dallo heap.
Tutti gli esempi che ho trovato usano un vettore "heap ordinato" in cui ogni elemento in posizione a[i]>=a[2i] e a[i]>=a[2i+1] da qui quindi è possibile costruire l'albero binario. Però, se ho bisogno di inserire,togliere elementi dinamicamente, il vettore non va bene come struttura di appoggio per l'heap, oppure mi sbaglio?
Anche se creassi un vettore di interi allocato dinamicamente, supponiamo

int* num=(int*)malloc(300*sizeof(int));

come farei a sapere quanti elementi ho all'interno in ogni momento?
Gli esempi sugli heap che ho trovato,usano un vettore che già contiene tutti gli elementi, e poi si procede quindi all'operazione di spostamento dei dati in modo da poterli ordinare correttamente, ma se io ho bisogno di aggiungere dinamicamente dei dati cosa utilizzo?
__________________
CPU: AMD Phenom II X4 965 C3 Motherboard: Asrock 980DE3/U3S3 R2.0 Ram: G-Skill F3 CL7 4GB DDR3 1333Mhz Alimentatore: Corsair VX550w Hard-Disk: Samsung SSD EVO 860 500GB - WD Caviar Black 1 TB
Negative_creep è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2010, 14:33   #2
Supdario
Member
 
Iscritto dal: Mar 2008
Messaggi: 267
La cosa più semplice che puoi fare è sostituire il vettore di int con una struttura che contiene sia il vettore che la quantità di elementi.

Esempio veloce (non testato):

Codice:
typedef struct {
	int *num = NULL;
	size_t size = 0;
} vector;

void ridimensiona(vector *x, size_t dimensione)
{
	(*x).num = (vector *) realloc((*x).num, sizeof(int) * dimensione);
	(*x).size = dimensione;
}

void aggiungi(vector *x, int valore);
{
	ridimensiona(&(*x), (*x).size+1);
	(*x).num[size-1] = valore; 
}

int main()
{
	//[...]
	vector albero;
	aggiungi(&albero, 10);
	printf("Il primo elemento è %d e la dimensione è %d", albero.num[0], albero.size);
	//[...]
	return 0;
}
Questo dovrebbe mostrare "10" e "1", ma non so se funziona.

In ogni caso se hai la possibilità di usare il C++ i std::vector ti alleggerirebbero il lavoro di molto.

Ultima modifica di Supdario : 19-11-2010 alle 14:36.
Supdario è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2010, 16:09   #3
Negative_creep
Senior Member
 
L'Avatar di Negative_creep
 
Iscritto dal: Jul 2005
Città: Milano
Messaggi: 1078
Non posso, devo usare C. Ma se usassi le liste anzichè il vettore?
__________________
CPU: AMD Phenom II X4 965 C3 Motherboard: Asrock 980DE3/U3S3 R2.0 Ram: G-Skill F3 CL7 4GB DDR3 1333Mhz Alimentatore: Corsair VX550w Hard-Disk: Samsung SSD EVO 860 500GB - WD Caviar Black 1 TB
Negative_creep è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2010, 16:16   #4
goldorak
Senior Member
 
Iscritto dal: Apr 2003
Messaggi: 16462
Quote:
Originariamente inviato da Negative_creep Guarda i messaggi
Ciao a tutti, vi scrivo per avere un'informazione sugli heap. Avrei bisogno di salvare diversi dati in una struttura che mi consenta di poter costruire un albero binario partendo proprio dallo heap.
Tutti gli esempi che ho trovato usano un vettore "heap ordinato" in cui ogni elemento in posizione a[i]>=a[2i] e a[i]>=a[2i+1] da qui quindi è possibile costruire l'albero binario. Però, se ho bisogno di inserire,togliere elementi dinamicamente, il vettore non va bene come struttura di appoggio per l'heap, oppure mi sbaglio?
Anche se creassi un vettore di interi allocato dinamicamente, supponiamo

int* num=(int*)malloc(300*sizeof(int));

come farei a sapere quanti elementi ho all'interno in ogni momento?
Gli esempi sugli heap che ho trovato,usano un vettore che già contiene tutti gli elementi, e poi si procede quindi all'operazione di spostamento dei dati in modo da poterli ordinare correttamente, ma se io ho bisogno di aggiungere dinamicamente dei dati cosa utilizzo?
Ti serve uno heap binomiale.
Dai un occhiata all'articolo su wikipedia : http://en.wikipedia.org/wiki/Binomial_heap.
__________________
MICROSOFT : Violating your privacy is our priority
goldorak è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2010, 15:25   #5
Negative_creep
Senior Member
 
L'Avatar di Negative_creep
 
Iscritto dal: Jul 2005
Città: Milano
Messaggi: 1078
Ok grazie, gli darò un'occhiata appena posso. Non sapevo neanche che esistessero!
__________________
CPU: AMD Phenom II X4 965 C3 Motherboard: Asrock 980DE3/U3S3 R2.0 Ram: G-Skill F3 CL7 4GB DDR3 1333Mhz Alimentatore: Corsair VX550w Hard-Disk: Samsung SSD EVO 860 500GB - WD Caviar Black 1 TB
Negative_creep è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint L'IA cambia tutte le regole della sicurezza tra ...
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
I nuovi OPPO Reno 16 e 16 Pro arrivano i...
Agenti di coding più cari del pro...
OPPO ha trovato il modo per migliorare i...
Robot aspirapolvere con funzioni da top ...
L'anello smart di Apple è sempre ...
HONOR Watch 6: fino a 35 giorni di auton...
Nuovi robot aspirapolvere con funzioni t...
Cloudflare taglia un quinto del personal...
Snapdragon 8 Elite Gen 6: poche differen...
Hai una GPU NVIDIA e perdi fino al 10% d...
Una Game Boy Camera del 1998 sul telesco...
La crisi delle memorie è colpa di...
Lexar ARES, SSD da 2TB Gen4 a prezzo ott...
Crisi della RAM: Apple punta su un forni...
DJI Osmo Mobile 7 scende a 58,99€: stabi...
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: 09:55.


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