Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
mibo Forumaš(ica)


Pridružen/a: 04. 10. 2007. (14:52:50) Postovi: (51)16
Spol: 
Lokacija: /var/tmp
|
Postano: 16:30 pet, 25. 4. 2008 Naslov: Neobicno? |
|
|
[code:1]double **ucitaj(int a, int b){
double **m;
int i, j;
if((m = (double **)calloc(b, sizeof(double *))) == NULL){
fprintf(stderr, ":-(\n");
exit(-1);
}
for(i = 0; i < b; i++){
if((m[i] = (double *)calloc(a, sizeof(double *))) == NULL){
fprintf(stderr, ":-(\n");
exit(-2);
}
}
for(i = 0; i < a; i++){
for(j = 0; j < b; j++){
printf("{%p}m[%d][%d]=", &m[j][i], j, i); scanf("%lf", &m[j][i]);
}
}
return m;
}
void ispisi(const double **m, int a, int b){
int i, j;
printf("\n");
for(i = 0; i < a; i++)
for(j = 0; j < b; j++)
printf("{%p}m[%d][%d]=%g\n", &m[j][i], j, i, m[j][i]);
}
int main(void){
double **mat;
int a, b, i;
printf("Unesi broj redaka: "); scanf("%d", &a);
printf("Unesi broj stupaca: "); scanf("%d", &b);
mat = ucitaj(a, b);
ispisi(mat, a, b);
/* ... ciscenje */
return 0;
}
[/code:1]
Upis:
[tt]Unesi broj redaka: 3
Unesi broj stupaca: 2
{0xba01d8}m[0][0]=1.1
{0xba01e8}m[1][0]=2.2
{0xba01e0}m[0][1]=3.3
{0xba01f0}m[1][1]=4.4
{0xba01e8}m[0][2]=5.5
{0xba01f8}m[1][2]=6.6[/tt]
Ispis:
[tt]{0xba01d8}m[0][0]=1.1
{0xba01e8}m[1][0]=5.5
{0xba01e0}m[0][1]=3.3
{0xba01f0}m[1][1]=7.55431e-313
{0xba01e8}m[0][2]=5.5
{0xba01f8}m[1][2]=6.72967e-320
[/tt]
[b]Pitanje:[/b]
Kako se promjenio sadržaj na adresi {0xba01e8} i {0xba01f0} i {0xba01f8} ? :grebgreb:
Kod: | double **ucitaj(int a, int b){
double **m;
int i, j;
if((m = (double **)calloc(b, sizeof(double *))) == NULL){
fprintf(stderr, ":-(\n");
exit(-1);
}
for(i = 0; i < b; i++){
if((m[i] = (double *)calloc(a, sizeof(double *))) == NULL){
fprintf(stderr, ":-(\n");
exit(-2);
}
}
for(i = 0; i < a; i++){
for(j = 0; j < b; j++){
printf("{%p}m[%d][%d]=", &m[j][i], j, i); scanf("%lf", &m[j][i]);
}
}
return m;
}
void ispisi(const double **m, int a, int b){
int i, j;
printf("\n");
for(i = 0; i < a; i++)
for(j = 0; j < b; j++)
printf("{%p}m[%d][%d]=%g\n", &m[j][i], j, i, m[j][i]);
}
int main(void){
double **mat;
int a, b, i;
printf("Unesi broj redaka: "); scanf("%d", &a);
printf("Unesi broj stupaca: "); scanf("%d", &b);
mat = ucitaj(a, b);
ispisi(mat, a, b);
/* ... ciscenje */
return 0;
}
|
Upis:
Unesi broj redaka: 3
Unesi broj stupaca: 2
{0xba01d8}m[0][0]=1.1
{0xba01e8}m[1][0]=2.2
{0xba01e0}m[0][1]=3.3
{0xba01f0}m[1][1]=4.4
{0xba01e8}m[0][2]=5.5
{0xba01f8}m[1][2]=6.6
Ispis:
{0xba01d8}m[0][0]=1.1
{0xba01e8}m[1][0]=5.5
{0xba01e0}m[0][1]=3.3
{0xba01f0}m[1][1]=7.55431e-313
{0xba01e8}m[0][2]=5.5
{0xba01f8}m[1][2]=6.72967e-320
Pitanje:
Kako se promjenio sadržaj na adresi {0xba01e8} i {0xba01f0} i {0xba01f8} ?
_________________ WAR IS PEACE
FREEDOM IS SLAVERY
IGNORANCE IS STRENGTH
George Orwell: 1984
|
|
[Vrh] |
|
Mad Wilson Forumaš(ica)


Pridružen/a: 29. 05. 2006. (22:51:14) Postovi: (121)16
|
Postano: 17:11 pet, 25. 4. 2008 Naslov: Re: Neobicno? |
|
|
[quote="mibo"]double **ucitaj(int a, int b){
double **m;
int i, j;
if((m = (double **)calloc(b, sizeof(double *))) == NULL){
fprintf(stderr, ":-(\n");
exit(-1);
}
for(i = 0; i < b; i++){
if((m[i] = (double *)calloc(a, sizeof([color=red]double[/color]))) == NULL){
fprintf(stderr, ":-(\n");
exit(-2);
}
}
for(i = 0; i < a; i++){
for(j = 0; j < b; j++){
printf("{%p}m[%d][%d]=", &m[j][i], j, i); scanf("%lf", &m[j][i]);
}
}
return m;
}
void ispisi(const double **m, int a, int b){
int i, j;
printf("\n");
for(i = 0; i < a; i++)
for(j = 0; j < b; j++)
printf("{%p}m[%d][%d]=%g\n", &m[j][i], j, i, m[j][i]);
}
int main(void){
double **mat;
int a, b, i;
printf("Unesi broj redaka: "); scanf("%d", &a);
printf("Unesi broj stupaca: "); scanf("%d", &b);
mat = ucitaj(a, b);
ispisi(mat, a, b);
/* ... ciscenje */
return 0;
}
[/quote]
sizeof(double)!=sizeof(double*)
To je jedina greska koju ja vidim.
mibo (napisa): | double **ucitaj(int a, int b){
double **m;
int i, j;
if((m = (double **)calloc(b, sizeof(double *))) == NULL){
fprintf(stderr, " \n");
exit(-1);
}
for(i = 0; i < b; i++){
if((m[i] = (double *)calloc(a, sizeof(double))) == NULL){
fprintf(stderr, " \n");
exit(-2);
}
}
for(i = 0; i < a; i++){
for(j = 0; j < b; j++){
printf("{%p}m[%d][%d]=", &m[j][i], j, i); scanf("%lf", &m[j][i]);
}
}
return m;
}
void ispisi(const double **m, int a, int b){
int i, j;
printf("\n");
for(i = 0; i < a; i++)
for(j = 0; j < b; j++)
printf("{%p}m[%d][%d]=%g\n", &m[j][i], j, i, m[j][i]);
}
int main(void){
double **mat;
int a, b, i;
printf("Unesi broj redaka: "); scanf("%d", &a);
printf("Unesi broj stupaca: "); scanf("%d", &b);
mat = ucitaj(a, b);
ispisi(mat, a, b);
/* ... ciscenje */
return 0;
}
|
sizeof(double)!=sizeof(double*)
To je jedina greska koju ja vidim.
|
|
[Vrh] |
|
ß Forumaš(ica)


Pridružen/a: 29. 07. 2006. (15:29:06) Postovi: (115)16
Spol: 
Lokacija: Graveyard Mountain Home
|
|
[Vrh] |
|
mibo Forumaš(ica)


Pridružen/a: 04. 10. 2007. (14:52:50) Postovi: (51)16
Spol: 
Lokacija: /var/tmp
|
Postano: 17:20 pet, 25. 4. 2008 Naslov: Hvala |
|
|
Gore je
[code:1]#include <stdio.h>
#include <stdlib.h>
[/code:1]
@Mad Wilson: Nakon ispravke na koju si ukazao, sve je ok - Hvala ; iako mi i dalje nije jasan odgovor na prvotno pitanje :grebgreb:
[quote="ß"]I ne znam odakle ovaj warning jer se meni čini da je sve u redu s tipovima.[/quote]
@ß: Ni to mi nije jasno.
Gore je
Kod: | #include <stdio.h>
#include <stdlib.h>
|
@Mad Wilson: Nakon ispravke na koju si ukazao, sve je ok - Hvala ; iako mi i dalje nije jasan odgovor na prvotno pitanje
ß (napisa): | I ne znam odakle ovaj warning jer se meni čini da je sve u redu s tipovima. |
@ß: Ni to mi nije jasno.
_________________ WAR IS PEACE
FREEDOM IS SLAVERY
IGNORANCE IS STRENGTH
George Orwell: 1984
|
|
[Vrh] |
|
Mad Wilson Forumaš(ica)


Pridružen/a: 29. 05. 2006. (22:51:14) Postovi: (121)16
|
|
[Vrh] |
|
mdoko Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12) Postovi: (71A)16
Spol: 
Lokacija: Heriot-Watt University, Edinburgh
|
|
[Vrh] |
|
Mad Wilson Forumaš(ica)


Pridružen/a: 29. 05. 2006. (22:51:14) Postovi: (121)16
|
|
[Vrh] |
|
|