|
|||||||
|
|
|
![]() |
|
|
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: 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;
}
}
~§~ 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: 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 |
|
|
|
|
|
#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: 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 |
|
|
|
|
|
#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: 8897
|
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: 10:15.



















