Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
L'abbonamento Ultimate di GeForce NOW ora comprende la nuova architettura Blackwell RTX con GPU RTX 5080 che garantisce prestazioni tre volte superiori alla precedente generazione. Non si tratta solo di velocità, ma di un'esperienza di gioco migliorata con nuove tecnologie di streaming e un catalogo giochi raddoppiato grazie alla funzione Install-to-Play
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Deebot X11 Omnicyclone implementa tutte le ultime tecnologie Ecovacs per l'aspirazione dei pavimenti di casa e il loro lavaggio, con una novità: nella base di ricarica non c'è più il sacchetto di raccolta dello sporco, sostituito da un aspirapolvere ciclonico che accumula tutto in un contenitore rigido
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Grazie ad un mocio rotante che viene costantemente bagnato e pulito, Narwal Flow assicura un completo e capillare lavaggio dei pavimenti di casa. La logica di intellignza artificiale integrata guida nella pulizia tra i diversi locali, sfruttando un motore di aspirazione molto potente e un sistema basculante per la spazzola molto efficace sui tappeti di casa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-01-2005, 16:14   #1
cagnulein
Bannato
 
L'Avatar di cagnulein
 
Iscritto dal: Oct 2002
Messaggi: 567
[C] Array di Puntatori

Ciao ragazzi...sto impazzendo su una cosa.
Ho un array tridimensionale dichiarato in questo modo

long array3d[2][100][1000];

e poi ho un array di puntatori dichiarato in questo modo

long *punt_array[1000];

allora io vorrei passare una dimensione del primo array come puntatore nel secondo...

cioè una cosa di questo tipo:

punt_array=array3d[0][2];

è possibile fare una cosa del genere?

Grazie e ciao
cagnulein è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2005, 16:30   #2
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
si dovrebbe fare così:
Codice:
for (i=0; i<1000; ++i) punt_array[i]= &array3d[0][2][i];
cmq attendi conferme da gente più autoritaria...
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2005, 19:12   #3
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16211
Vuoi passare la dimensione di un array come valore?
Non vorrei sbagliare, ma si può fare solo se l'array è monodimensionale: in questo caso, il metodo è:
Codice:
size = sizeof(a)/sizeof(a[0]);
Se però devi fare conti con matrici multidimensionali, mi sa che ti conviene implementarle con un tipo strutturato in cui registri sia le dimensioni, sia i valori (questi ultimi si fanno con i puntatori a puntatori).
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2005, 19:15   #4
cagnulein
Bannato
 
L'Avatar di cagnulein
 
Iscritto dal: Oct 2002
Messaggi: 567
no no non voglio passare la sua dimensione...bensì voglio che ogni indice del puntatore di array punti all'indice della tabella passata. Esempio

*punt_array[1] deve contenere lo stesso valore di array3d[0][2][1].
*punt_array[100] deve contenere lo stesso valore di array3d[0][2][100].
e così via....

praticamente mi serve perchè in una funzione devo passare un array, e devo modificarlo...
cagnulein è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2005, 19:32   #5
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
Quote:
Originariamente inviato da cagnulein
no no non voglio passare la sua dimensione...bensì voglio che ogni indice del puntatore di array punti all'indice della tabella passata. Esempio

*punt_array[1] deve contenere lo stesso valore di array3d[0][2][1].
*punt_array[100] deve contenere lo stesso valore di array3d[0][2][100].
e così via....

praticamente mi serve perchè in una funzione devo passare un array, e devo modificarlo...
Ziosilvio deve aver frainteso, cmq dovrebbe essere come ho deto io. adesso però servirebbe una bella conferma da parte di Ziosilvio...
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2005, 20:31   #6
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16211
Anzitutto, chiedo scusa per aver frainteso.

Poi: sì, allora mi sa che quello che vuole fare cagnulein si può fare, tra l'altro proprio come ha detto VegetaSSJ5.
Motivo: se array3D è un array di array di array di int, e punt_array è un array di int, allora punt_array[n] e array3D[j][k][n] sono int per ogni valore "lecito" di n, j e k.

Il codice di cagnulein fa un'altra cosa lecita, ossia scrive in punt_array l'indirizzo di array3D[j][k], che ovviamente è un array di int: in questo modo è possibile modificare i valori di array3D[j][k][n] per mezzo di una funzione con un codice del tipo:
Codice:
void set(int val, int *arr, int loc)
{
    arr[loc] = val;
}

/* bla bla bla */

    set(valore,array3D[j][k],indice);
Tutte queste cose sono rese possibili dall'equivalenza tra puntatori e array, che è spiegata molto bene in quello che è --- e che non è --- nelle FAQ del newsgroup comp.lang.c curate da Steve Summitt.
(Il link è in un mio post nella terza pagina del thread sui migliori libri di programmazione.)
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 17-01-2005, 05:53   #7
cagnulein
Bannato
 
L'Avatar di cagnulein
 
Iscritto dal: Oct 2002
Messaggi: 567
grazie, ora proverò
cagnulein è offline   Rispondi citando il messaggio o parte di esso
Old 17-01-2005, 11:44   #8
cagnulein
Bannato
 
L'Avatar di cagnulein
 
Iscritto dal: Oct 2002
Messaggi: 567
grassie, funsiona
cagnulein è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Substrati in vetro, Intel smentisce le v...
ECOVACS DEEBOT T50 PRO OMNI Gen2 fa piaz...
Windelo 62: catamarano a vela che unisce...
Francia, in arrivo un incentivo di 1.000...
Haier, la sorpresa a IFA: la lavatrice C...
GeForce RTX 5000 SUPER in arrivo? Sembra...
Ionity prova una soluzione contro i ladr...
Pirateria, svolta clamorosa: Dazn e Lega...
Maxi richiamo Toyota e Lexus: oltre 900....
Blackwell Ultra: fino al 45% di prestazi...
Neuralink: 12 pazienti hanno usato l'imp...
Amazon sorprende tutti oggi: valanga di ...
A19 e A19 Pro: Apple svela le differenze...
NASA: inizia l'esperimento CHAPEA per si...
DAZN rischia sanzioni milionarie per pub...
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: 16:48.


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