Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-09-2007, 14:33   #1
LetBloodline
Junior Member
 
Iscritto dal: Jul 2007
Messaggi: 27
[c++] Definizione di matrici

Scusate il disturbo ma mi trovo a dover istanziare una matrice e nn ci riesco se devo usare delle variabili come grandezza

Posso per esempio scrivere
Codice:
double tabella[10][10];
oppure
Codice:
double	(*tabella)[24] = new double[durata][24]
ma mi servirebbe inizializzare una tabella con una dimensione pari alla variabile durata e l'altra pari a un'altra variabile. Come posso fare?
LetBloodline è offline   Rispondi citando il messaggio o parte di esso
Old 28-09-2007, 14:51   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da LetBloodline Guarda i messaggi
ma mi servirebbe inizializzare una tabella con una dimensione pari alla variabile durata e l'altra pari a un'altra variabile. Come posso fare?
Così dovrebbe funzionare:
Codice:
double (*tabella)[m] = new double[durata][m];
'm' è ovviamente un altra variabile.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 28-09-2007, 15:34   #3
LetBloodline
Junior Member
 
Iscritto dal: Jul 2007
Messaggi: 27
mi dice che si aspetta una espressione costante se provo come mi hai detto. Non vuole la 'm' prima dell'uguale =/
LetBloodline è offline   Rispondi citando il messaggio o parte di esso
Old 28-09-2007, 15:46   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da LetBloodline Guarda i messaggi
mi dice che si aspetta una espressione costante se provo come mi hai detto. Non vuole la 'm' prima dell'uguale =/
In effetti ho fatto una stupidata .... prima di postare l'ho provato con il g++ su Linux e me lo dava per buono. Poi ho provato adesso con VC++ e non va e ho riprovato con g++ specificando, stavolta, -pedantic e mi dà un warning: ISO C++ forbids variable-size array

Che dire .... non si può fare così.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2007, 07:37   #5
LetBloodline
Junior Member
 
Iscritto dal: Jul 2007
Messaggi: 27
a parte una struttura non si può fare in altro modo? ç_ç
LetBloodline è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2007, 08:36   #6
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da LetBloodline Guarda i messaggi
a parte una struttura non si può fare in altro modo? ç_ç
Sì, facendolo come "un array di array", tramite puntatori.
Codice:
double **matrice;

matrice = new double*[num_righe];

for (i = 0; i < num_righe; i++)
    matrice[i] = new double[num_colonne];
A questo punto l'espressione matrice[r][c] rappresenta un double. Questa tecnica comunque non crea un array vero e proprio come inteso dal C/C++ ("un insieme di elementi contigui in memoria"). È basata su puntatori e non puoi ovviamente risalire alle dimensioni tramite 'matrice'.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2007, 09:29   #7
Torav
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 558
se devi fare una matrice dinamica di, poniamo, m righe e n colonne puoi allocare un array unico di dimensioni m*n e poi per accedere al generico elemento della riga j e colonna i puoi fare:

matrice[m*j + n*i]

io ho sempre fatto così e anche all'uni l'hanno insegnato in questo modo, poi non so se è quello che serve a te
Torav è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2007, 09:45   #8
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da Torav Guarda i messaggi
matrice[m*j + n*i]
No, è matrice[j*n + i]

Quote:
Originariamente inviato da Torav Guarda i messaggi
io ho sempre fatto così e anche all'uni l'hanno insegnato in questo modo
Ah beh.....
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2007, 18:30   #9
Torav
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 558
ups ho scritto troppo veloce senza pensare e mi sono meritato la figuraccia
Torav è offline   Rispondi citando il messaggio o parte di esso
Old 02-10-2007, 14:44   #10
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da Torav Guarda i messaggi
se devi fare una matrice dinamica di, poniamo, m righe e n colonne puoi allocare un array unico di dimensioni m*n e poi per accedere al generico elemento della riga j e colonna i puoi fare:

matrice[m*j + n*i]

io ho sempre fatto così e anche all'uni l'hanno insegnato in questo modo, poi non so se è quello che serve a te
all´uni insegnano in questo (orrendo) modo ???

della serie famolo strano
__________________
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 02-10-2007, 16:40   #11
Torav
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 558
beh se hai presente come funziona la numerazione in una base qualsiasi (e se fai fisica è bene che tu lo sappia) allora è un metodo ottimo, veloce, intuitivo e non devi nemmeno impazzire a fare 2000 malloc e/o free!
Torav è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
Trapela in rete la roadmap dei nuovi gio...
In Germania la prima centrale solare gal...
Iliad lancia TOP 250 PLUS e TOP 300 PLUS...
UE: nuovi standard per i caricabatterie,...
Fine supporto Windows 10: breve guida pr...
Cyber Arena Tour: WINDTRE BUSINESS porta...
Addio Microsoft Word: la Cina sceglie WP...
Nano Banana si espande: l’AI di Google p...
Che fare con i Tesla Cybertruck invendut...
Simucube 3 Sport, Pro e Ultimate ufficia...
Facebook rilancia le offerte di lavoro: ...
Hisense PT1: il cinema in casa con la po...
Pixel 10: come risolvere (forse) i crash...
Plenitude lancia la sua Fibra ottica: fi...
Apple TV+ elimina il 'plus' dal nome: or...
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: 12:43.


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