Torna indietro   Hardware Upgrade Forum > Software > Programmazione

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
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
realme 16 5G è un nuovo smartphone con sensore Sony IMX 852 da 50MP sul retro e uno specchio selfie fisico integrato nella camera bar, una prima nel segmento di mercato. Batteria da 6550mAh in un corpo da 8,1mm e 183g, certificazione IP69K e ricarica da 45W completano un pacchetto aggressivo per la fascia media, per uno dei prodotti più interessanti del produttore sul piano commerciale
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Sono ormai definitive le nuove norme del Codice della Strada per i monopattini elettrici. Non solo targa e assicurazione, le regole sono tante e riguardano diversi aspetti, vi spieghiamo come evitare sanzioni che possono essere salate
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-02-2005, 11:30   #1
terreldavis
Junior Member
 
Iscritto dal: Feb 2005
Messaggi: 13
help c++

ciao a tutti, è la prima volta che scrivo in questo forum. sono arrivato qui perche mi serve un aiuto . Sto preparando un esame di programmazione in c++ e mi sono incastrato con i puntatori nn riesco propio a capirli bene. vi riporto qui il programma che sto cercando di fare:

#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <math.h>

void gena(int *);


main()
{
int a[100][100], i,j;

srand(time(NULL));

gena(a); /*qui mi da errore*/

for(i=0;i<=100;i++){
for(j=0;j<=100;j++)
printf("%3d",a[i][j]);}


system("PAUSE");
return EXIT_SUCCESS;
}

void gena(int *array)
{
void rand(int *);
int x,y;

for (x=0;x<=100;x++){
for(y=0;y<=100;y++)
rand(&array[x][y]);}
}

void rand(int *element)
{
*element=(rand()%10)+1;
}


in pratica ho una matrice 100*100 e vorrei passarla alla funzione gena in modo da riempirla con numeri casuali. quando vado a compilare mi dice "cannot convert `int (*)[100]' to `int (**)[100]' for argument `1' to `void gena(int (**)[100])' " alla riga 14 cioè quando invoco la funzione.....ma è possibile che nn capisce che gli sto passando un vettore multidimensionale? come faccio a farglielo capire??......vi prego di aiutarmi sicuramente ci sono altri errori vi prego di farmi capire dove sbaglio..

grazie in anticipo
terreldavis è offline   Rispondi citando il messaggio o parte di esso
Old 19-02-2005, 12:53   #2
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
Codice:
#include <time.h> 
#include <iostream.h> 
#include <stdio.h> 
#include <stdlib.h>

#define N 10

void gena(int array[N][N]); 


int main(void) 
{ 
	int a[N][N], i,j; 
	srand(time(NULL)); 

	gena(a); /*qui mi da errore*/ 

	for(i=0;i<N;i++){ 
		for(j=0;j<N;j++) 
			printf("%3d",a[i][j]);
		printf ("\n");
	} 

	
	system("PAUSE"); 
	return EXIT_SUCCESS; 
} 

void gena(int array[][N]) { 
	int x,y; 
	for (x=0;x<N;x++){ 
		for(y=0;y<N;y++) 
			array[x][y] = rand()%10+1;
	}
}
guarda adesso

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 19-02-2005, 13:11   #3
terreldavis
Junior Member
 
Iscritto dal: Feb 2005
Messaggi: 13
cosi mi funziona grazie... .ma mi spieghi cosa sbagliavo? io nn ho capito come si fa a passare un puntatore di una array bidimensionale a una funzione. è inutile l'asterisco che avevo messo nella dichiarazione della funzione gena? e la funzione rand che avevo fatto era totalmente sbagliata? se puoi dammi qualche chiarimento sti cavolo di puntatori propio nn mi entrano in testa , nn capisco bene come si unsano con le array...cmq grazie mille
terreldavis è offline   Rispondi citando il messaggio o parte di esso
Old 19-02-2005, 13:14   #4
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
1) avevi bagliato a passare la matrice ... quel metodo va bene con un array semplice

2) nei cicli non ci vuole l'uguale

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 19-02-2005, 13:26   #5
terreldavis
Junior Member
 
Iscritto dal: Feb 2005
Messaggi: 13
nn vorrei essere troppo rompipalle.....ma precisamente perche ho sbagliato a passare la matrice? noto la correzione che mi hai fatto pero nn riesco a capire il motivo.
terreldavis è offline   Rispondi citando il messaggio o parte di esso
Old 19-02-2005, 14:15   #6
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
gli array bidimensionali si passano in quel modo

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 20-02-2005, 22:11   #7
tglman
Senior Member
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
Array bidimensionale

un'altro paio di modi per passare un array bidimensionale magari anche senza conoscere preventivamente le dimensioni possono essere
Codice:
void function (int * vect[]);
//oppure
void function (int **vect);
è una cosa un pò strana ma se pensi bene una matrice non è nient'altro che un vettore di puntatori.

Ciao....
tglman è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2005, 04:56   #8
Black imp
Senior Member
 
Iscritto dal: Nov 2000
Città: MILANO
Messaggi: 2662
Re: Array bidimensionale

Quote:
Originariamente inviato da tglman
un'altro paio di modi per passare un array bidimensionale magari anche senza conoscere preventivamente le dimensioni possono essere
Codice:
void function (int * vect[]);
//oppure
void function (int **vect);
è una cosa un pò strana ma se pensi bene una matrice non è nient'altro che un vettore di puntatori.

Ciao....

a me sembra il secondo il più corretto di tutti quelli qui postati - tre se non sbaglio -

il primo suggerito è sporco perchè implica che si sappia che deve essere passata una matrice [][N] invece la matrice è [N][N] e quindi non c'è information hiding.
Black imp è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2005, 09:28   #9
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
Re: Re: Array bidimensionale

Quote:
Originariamente inviato da Black imp
a me sembra il secondo il più corretto di tutti quelli qui postati - tre se non sbaglio -

il primo suggerito è sporco perchè implica che si sappia che deve essere passata una matrice [][N] invece la matrice è [N][N] e quindi non c'è information hiding.
scusa ma la dimensione della matrice la sai comunque se no non potresti lavorarci sopra.

Altra cosa scrivere

Codice:
void funzione (int *array)
è identico che scrivere
Codice:
void funzione (int array[])
così è lo stesso discorso per i bidimensionali con l'aggiunta però di del valore nel secondo.

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2005, 16:19   #10
tglman
Senior Member
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
perche gli arrai bidimensionali variabili

Spesso definire gli array bidimensionali con dimensioni variabili è molto utile,
per esempio si può creare una funzione che cerchi una stringa in un vettore di stinge
del tipo
cerca(char *str,char *vetstr[],nstr_in_vett);

con questa funzione non devi sapere quando programmi il numero di stringhe su cui vai a lavorare ma te lo puoi calcolare mentre lo esegui senza limiti
tglman è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


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...
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Infineon apre il 2 luglio lo Smart Power...
Crimson Desert non si ferma: il gioco di...
Con iOS 27 l'iPhone si ripristina da sol...
Visa porta i pagamenti in ChatGPT: gli a...
OpenAI valuta un 'drastico' taglio dei p...
Il MacBook con display touch si far&agra...
Google promette di restituire più...
Quattro monitor 4K, doppia LAN 2.5G e Wi...
ROG Equalizer, il cavo 'salva-GPU': prim...
Falla critica CVSS 9.8 in Oracle PeopleS...
Microsoft accelera su Edge: aggiornament...
AMD ha corretto un bug da 10.000 dollari...
Vertiv: data center, la corsa dell’IA sp...
Siri non diventerà la tua fidanzata virt...
Prezzi in crescita del 200% e forniture ...
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:38.


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