Torna indietro   Hardware Upgrade Forum > Software > Programmazione

NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine
Dopo anni di attesa e una lunga fase di sviluppo, Noctua entra nel mercato dei dissipatori a liquido AIO con la nuova serie NL-LC1. Forte dell'esperienza maturata nel raffreddamento ad aria, l'azienda austriaca promette di portare la propria filosofia fatta di qualità costruttiva, attenzione ai dettagli e silenziosità anche in questo segmento. Abbiamo provato il nuovo sistema per scoprire se riesce a distinguersi in un mercato ormai molto competitivo.
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super
Arrivato sul mercato italiano a fine marzo, la serie Boox Go 10.3 (Gen II) offre Android 15, penna da 4096 livelli e retroilluminazione opzionale (nel modello da noi provato, Lumi, presente). La serie si compone di due tablet ePaper che fanno da e-reader, blocco note digitale e persino browser, tutto a un prezzo che fa dimenticare i prodotti di brand più blasonati
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
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-05-2007, 10:31   #1
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
[C] puntatori

Ciao.
In una funzione del genere:
Codice:
void prova( int* pCount, BYTE*** pppTest)
{
	int i;

	BYTE **pP = NULL;

	*pCount = 10;

	pP = (BYTE **)malloc( *pCount * sizeof(BYTE *) );
	
	if ( ! pP )
		puts( "error allocating memory 1"), exit(1);
		
	for (i = 0; i < *pCount; i++)
	{
		pP[i] = (BYTE *)malloc( 128 * sizeof(BYTE) );

		if ( !pP[i] )
			puts("error allocating memory 2"), exit(1);

		memset( pP[i], 0, 128 * sizeof(BYTE) );

		sprintf(pP[i], "this is a test <%03i>", i );
	}
	*pppTest = pP;
	return 0;
}
perche´ non posso usare direttamente *pppTest anziche´ pP ?
Cioe´, perche´ devo dichiararmi un puntatore locale, allocare etc e poi alla fine assegnare l´indirizzo a quello passato e non usare direttamente il puntatore che trovo nell´indirizzo passato ?

E´ un po´ di giorni che lavoro con triplette *** e mi son perso un attimo
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2007, 11:04   #2
recoil
Senior Member
 
L'Avatar di recoil
 
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19149
Codice:
void prova(char ***ppp)
{
	char **pp;
	int i;

	//pp = (char **) malloc(10 * sizeof(char *));
	*ppp = (char **) malloc(10 * sizeof(char *));
	for (i = 0; i < 10; i++)
	{
		(*ppp)[i] = malloc(4);
                //pp[i] = malloc(4);
	}
	//*ppp = pp;
}
eccoti un esempio
vedi però come è brutto da vedere?
(*ppp)[i] non è bello, meglio un pp[i] insomma
recoil è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2007, 11:56   #3
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da recoil Guarda i messaggi
Codice:
void prova(char ***ppp)
{
	char **pp;
	int i;

	//pp = (char **) malloc(10 * sizeof(char *));
	*ppp = (char **) malloc(10 * sizeof(char *));
	for (i = 0; i < 10; i++)
	{
		(*ppp)[i] = malloc(4);
                //pp[i] = malloc(4);
	}
	//*ppp = pp;
}
eccoti un esempio
vedi però come è brutto da vedere?
(*ppp)[i] non è bello, meglio un pp[i] insomma
ma che pirla! non mettevo le parentesi!

(*ppp)[i] lo scrivevo *ppp[i]

penso che sia questo il problema perche´ non vedo altre differenze.
grazie

EDIT: no, le ho tolte al tuo esempio e funziona lo stesso. Chissa´cosa cacchio ho scritto

EDIT2: riconfermo le parentesi, dal main non chiamavo la tua funzione ma sempre la mia.
Ho tolto le parentesi dalla tua, la chiamo e crasha. Vabbe´ chiarito, grazie
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve

Ultima modifica di trallallero : 15-05-2007 alle 12:03.
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2007, 12:04   #4
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
piccola domanda:

ma è lecito scrivere:

Codice:
*pCount = 10
??
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2007, 12:09   #5
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da RaouL_BennetH Guarda i messaggi
piccola domanda:

ma è lecito scrivere:

Codice:
*pCount = 10
??
perche´ no ?
il prototipo e´ questo:
Codice:
void prova( int* pCount, BYTE*** pppTest)
quindi pCount e´ un puntatore.
La funzione chiamante passa quindi l´indirizzo della variabile dove la funzione chiamata andra´ a scrivere.
se scrivi
Codice:
pCount = 10
(a parte che ricevi come minimo un warning) stai assegnando l´indirizzo 10 al puntatore.
Se scrivi
Codice:
*pCount = 10
stai assegnando 10 alla variabile in quell´inidirzzo.
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2007, 12:10   #6
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da trallallero Guarda i messaggi
perche´ no ?
il prototipo e´ questo:
Codice:
void prova( int* pCount, BYTE*** pppTest)
quindi pCount e´ un puntatore.
La funzione chiamante passa quindi l´indirizzo della variabile dove la funzione chiamata andra´ a scrivere.
se scrivi
Codice:
pCount = 10
(a parte che ricevi come minimo un warning) stai assegnando l´indirizzo 10 al puntatore.
Se scrivi
Codice:
*pCount = 10
stai assegnando 10 alla variabile in quell´inidirzzo.
Ah, ok Grazie per la spiegazione.

RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine NL-LC1 è il primo dissipatore a liquido A...
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con ...
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...
Logitech G305 Lightspeed e G316 X 98: 8....
Qualcomm Snapdragon Reality Elite uffici...
Snapdragon START: arriva la piattaforma ...
Kioxia Exceria G3: il modella da 4 TB &e...
Gemini 3.5 Flash delude nei test Android...
DREAME X50 Ultra Complete a 749€ per il ...
Prezzi console handheld alle stelle: la ...
Toyota presenta il primo pickup elettric...
Prime Day anticipato, tutti gli smartpho...
Dyson V10 Konical: il primo aspirapolver...
FSR 4.1 su Radeon 6000, AMD spiega perch...
Hisense svela la gamma TV 2026: RGB Mini...
Narwal lancia gli sconti Prime Day 2026:...
SpaceX ha comprato Cursor: accordo da 60...
Commodore Callback 8020 è il tele...
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: 19:29.


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