ritonare una matrice!?!?
Moderatore: Staff
Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- Absolut
- Linux 4.x

- Messaggi: 1465
- Iscritto il: gio 10 feb 2005, 0:00
- Slackware: current
- Località: Roma
ritonare una matrice!?!?
In C++ una funzione mi genera una matrice 2 x 2, e la chiamo da lmain!?
come fare per far ritornare la matrice al main!?
coem si ritorna una matrice?
thanks!
come fare per far ritornare la matrice al main!?
coem si ritorna una matrice?
thanks!
- airex
- Linux 1.x

- Messaggi: 121
- Iscritto il: sab 8 lug 2006, 11:03
- Slackware: -current
- Desktop: xfce
- Distribuzione: Slackware64
- Località: Milano
- Contatta:
ritorna un puntatore alla matrice oppure usa un altro metodo, qualcosa del tipo:
Codice: Seleziona tutto
void tua_funz(int **a) {
....
}
void main(...) {
...
int matr[2][2];
....
tua_funz(matr);
....
...
}
- elettronicha
- Master

- Messaggi: 1712
- Iscritto il: mer 13 apr 2005, 0:00
- Località: Torino
- Contatta:
Re: ritonare una matrice!?!?
Proprio come un vettore o una stringa di caratteri, col puntatore. Prova a pensare a tutte le funzioni che modificano stringhe che conosci.slackvitto ha scritto:In C++ una funzione mi genera una matrice 2 x 2, e la chiamo da lmain!?
come fare per far ritornare la matrice al main!?
coem si ritorna una matrice?
thanks!
si puoi.dapuzz ha scritto:occhio che puoi ritornare solo una matrice già allocata, cioè non puoi fare una funzione tipo **crea_matrice(x,y). L'allocazione va fatta per forza di cosa nel main
Spero che qualcuno mi smentisca
nulla di più semplice
Codice: Seleziona tutto
tipo **crea_matrice(x,y)
{
tipo** matrice = new tipo*[x]
for ( int i = 0 ; i < x ; i++ )
{
matrice[i] = new tipo[y] ;
}
int a , b ;
// riempi la matrice .....
matrice[a][b] = quello che vuoi;
return matrice ;
}
- elettronicha
- Master

- Messaggi: 1712
- Iscritto il: mer 13 apr 2005, 0:00
- Località: Torino
- Contatta:
In realtà i puntatori se li si sanno usare offrono un'ampia libertà, più di quanta possano far pensare coloro che "spacciano" (detto simpaticamente) linguaggi che non ne fanno uso. Il problema reale è la loro corretta gestione e la loro allocazione/deallocazione, che spesso porta a impacci o perdite di tempo. Io non sono un genio dei puntatori e ammetto che possono far sudare a volte. 
- Paoletta
- Staff

- Messaggi: 3975
- Iscritto il: lun 25 apr 2005, 0:00
- Slackware: 14.2 - 64 bit
- Desktop: fluxbox
- Località: Varese
dapuzz ha scritto:occhio che puoi ritornare solo una matrice già allocata, cioè non puoi fare una funzione tipo **crea_matrice(x,y). L'allocazione va fatta per forza di cosa nel main
Spero che qualcuno mi smentisca
Codice: Seleziona tutto
#include <stdio.h>
#include <stdlib.h>
#define NUM 3
int ** func(void){
int **mat;int i,j;
mat=(int **)malloc(NUM*sizeof(int*));
for(i=0;i<NUM;i++)
mat[i]=malloc(NUM*sizeof(int));
for(i=0;i<NUM;i++)
for(j=0;j<NUM;j++)
mat[i][j]=i;
return mat;
}
int main(void){
int** punt;int i,j;
punt=func();
for(i=0;i<NUM;i++)
for(j=0;j<NUM;j++)
printf("%d \n",punt[i][j]);
return 0;
}
Ultima modifica di Paoletta il dom 19 nov 2006, 14:43, modificato 2 volte in totale.
