|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
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
![]() #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 |
![]() |
![]() |
![]() |
#2 |
Senior Member
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: 8895
|
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; } } ~§~ 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 |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Feb 2005
Messaggi: 13
|
cosi mi funziona grazie...
![]() ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
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: 8895
|
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 |
![]() |
![]() |
![]() |
#5 |
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.
|
![]() |
![]() |
![]() |
#6 |
Senior Member
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: 8895
|
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 |
![]() |
![]() |
![]() |
#7 |
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); Ciao.... |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Nov 2000
Città: MILANO
Messaggi: 2662
|
Re: Array bidimensionale
Quote:
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. |
|
![]() |
![]() |
![]() |
#9 | |
Senior Member
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: 8895
|
Re: Re: Array bidimensionale
Quote:
Altra cosa scrivere Codice:
void funzione (int *array) Codice:
void funzione (int array[]) ~§~ 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 |
|
![]() |
![]() |
![]() |
#10 |
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 |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:44.