prosledjivanje adrese pointera drugoj funkciji?
16.05.2008. u 14:33 · pre 224 meseci
#1
Treba mi mala pomoc u C jeziku oko zadatka ali mislim da ce svima biti lakse ako napravim prost primer pa da me neko ispravi gde gresim 
Naime, trebam da prosledim drugoj funkciji adresu pokazivaca koji je deklarisan u main-u i da ova (druga funkcija) popunjava i sredjuje matricu. naime, ja to napravim da "radi" ali su ti podaci ispravni sve dok sam u toj drugoj funkciji a cim se vrati u main podaci se vrate na postavke kakvi su bili pre poziva funkcije. Evo primera pa ako neko moze da mi pomgne bio bih mu veoma zahvalan
EDIT: X Files : Molim Vas da zbog preglednosti, kod upisujete između tag-ova predviđenih za to:
[code]
int main ( int argc, char *argv[] )
{
// ...
return 0;
}
[/code]
[Ovu poruku je menjao X Files dana 16.05.2008. u 19:50 GMT+1]
Naime, trebam da prosledim drugoj funkciji adresu pokazivaca koji je deklarisan u main-u i da ova (druga funkcija) popunjava i sredjuje matricu. naime, ja to napravim da "radi" ali su ti podaci ispravni sve dok sam u toj drugoj funkciji a cim se vrati u main podaci se vrate na postavke kakvi su bili pre poziva funkcije. Evo primera pa ako neko moze da mi pomgne bio bih mu veoma zahvalan
Code:
#include <stdio.h>
void upisiPodatke(double **podaci, int m, int n);
void ispisiPodatke(double **podaci, int m, int n);
int main()
{
double **podaci;
int m,n;
printf("Unesite dimenzije matrice:\nBroj redova: ");
scanf("%d",&m);
printf("Broj kolona: ");
scanf("%d",&n);
upisiPodatke(&podaci,m,n);
ispisiPodatke(&podaci,m,n);
return 0;
}
void upisiPodatke(double **podaci, int m, int n)
{
int i,j;
podaci = malloc (m * sizeof(double));
for (i=0;i<m;i++)
{
*(podaci+i)= malloc (n * sizeof(double));
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("Element [%d,%d]= ",i,j);
scanf("%lf",&*(*(podaci+i)+j));
}
}
}
void ispisiPodatke(double **podaci, int m, int n)
{
int i,j;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("%4.2f", *(*(podaci+i)+j));
}
printf("\n");
}
}
#include <stdio.h>
void upisiPodatke(double **podaci, int m, int n);
void ispisiPodatke(double **podaci, int m, int n);
int main()
{
double **podaci;
int m,n;
printf("Unesite dimenzije matrice:\nBroj redova: ");
scanf("%d",&m);
printf("Broj kolona: ");
scanf("%d",&n);
upisiPodatke(&podaci,m,n);
ispisiPodatke(&podaci,m,n);
return 0;
}
void upisiPodatke(double **podaci, int m, int n)
{
int i,j;
podaci = malloc (m * sizeof(double));
for (i=0;i<m;i++)
{
*(podaci+i)= malloc (n * sizeof(double));
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("Element [%d,%d]= ",i,j);
scanf("%lf",&*(*(podaci+i)+j));
}
}
}
void ispisiPodatke(double **podaci, int m, int n)
{
int i,j;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("%4.2f", *(*(podaci+i)+j));
}
printf("\n");
}
}
EDIT: X Files : Molim Vas da zbog preglednosti, kod upisujete između tag-ova predviđenih za to:
[code]
int main ( int argc, char *argv[] )
{
// ...
return 0;
}
[/code]
[Ovu poruku je menjao X Files dana 16.05.2008. u 19:50 GMT+1]