View Full Version : [c] funzioni
emiliano30
22-02-2005, 22:19
come faccio a passare delle funzioni per riferimento al programma principale? qualche esempio, so che potete aiutarmi grazie
Cosa intendi per "funzioni per riferimento al programma principale" ??
fai un esempio anche errato in codice (se sai più o meno cosa scrivere)
Ciao!!
emiliano30
22-02-2005, 23:16
devo creare delle funzioni che modifichano i valori presenti in una matrice(es:sommare tutti ivalori, trovare il valore medio,il max il min ecc.) passandole al programma principale non per valore ma per riferimento(credo utilizzando i puntatori):mc:
Originariamente inviato da tglman
fai un esempio anche errato in codice (se sai più o meno cosa scrivere)
Quoto...
Tu vuoi fare un programma che viene eseguito da un'altro che gli passa come parametri un'area di memoria su cui deve lavorare ed eseguire dei cambianenti..
Se ho capito bene quello che chiedi è un pò impossibile, il motivo è semplice, l'area di memeoria di un programma non può essere utilizzata da un'altro programma, forse il motivi di questa richiesta e quello di far eseguire due operazioni contemporaneamente esistono altri metodi...
Ciaoo ...!!!
Fenomeno85
23-02-2005, 11:02
Originariamente inviato da tglman
Tu vuoi fare un programma che viene eseguito da un'altro che gli passa come parametri un'area di memoria su cui deve lavorare ed eseguire dei cambianenti..
Se ho capito bene quello che chiedi è un pò impossibile, il motivo è semplice, l'area di memeoria di un programma non può essere utilizzata da un'altro programma, forse il motivi di questa richiesta e quello di far eseguire due operazioni contemporaneamente esistono altri metodi...
Ciaoo ...!!!
no non è proprio impossibile ... basta che esempio usi un file e ci salvi gli indirizzi di memoria secondo uno schema ... crei un figlio e gli fai leggere gli indi del file :D
~§~ Sempre E Solo Lei ~§~
Originariamente inviato da Fenomeno85
no non è proprio impossibile ... basta che esempio usi un file e ci salvi gli indirizzi di memoria secondo uno schema ... crei un figlio e gli fai leggere gli indi del file :D
Dipende da cosa intendi per figlio...
Condividere la memoria fra processi si può fare con Linux...e ci sono le apposite funzioni per la shared memory...
Condividere la memoria fra processi su Windows si può fare con procedure molto particolari...in questi casi molto più spesso si ricorre ai thread o se proprio si vogliono mantere i processi separati si usano le pipe...
In generale non si può solamente passare l'indirizzo...perchè ogni processo ha il suo spazio di indirizzamento virtuale...
Fenomeno85
23-02-2005, 11:09
giusto hai ragione come al solito :D
~§~ Sempre E Solo Lei ~§~
Se lanci un processo figlio quel processo non può accedere alle stesse aree di memoria, e se lanci un thread non serve il fale ti basta passarglieli per parametro....
Ciao!!
emiliano30
23-02-2005, 12:11
1. Scrivere un programma che:
(a) genera 10000 numeri interi casuali tra 1 e 10 e li scrive su una matrice quadrata A.
(b) produce una matrice B delle stesse dimensioni di A tale che
Bij = ( Aij se Aij ´e pari
2 × Aij se Aij ´e dispari
(c) calcola la somma sum di tutti gli elementi di B
(
d) calcola il prodotto prod di tutti gli elementi della diagonale principale di B.
(e) stampa sullo schermo sum e prod.
I punti (a),(b),(c) e (d) devono necessariamente essere realizzati come funzioni. In particolare la funzione
che realizza il punto (c) deve restituire in output il valore della somma, mentre la funzione che realizza il
punto (d) deve modificare direttamente la variabile prod del programma principale (passata per riferimento).
QUESTO è IL TESTO DEL PROBLEMA CHE DEVO RISOLVERE, OVVIAMENTE NON DOVRETE FARLO VOI. L'UNICO DUBBIO è SU QUEL "passata per riferimento"
:rolleyes: :rolleyes:
void prod(int *ris,.........)
{
*ris = .....
}
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.