un exemplu simplu ce rezuma problema mea :
void change(int *x, int *y){x=y;}
int main(){
int *xx,*yy;
yy = (int*)malloc(sizeof(int));
change(xx,yy);
if(xx == NULL)printf("is null\n");
else printf("---- %d ----\n",*xx);
.................................................. .........
xx nu pointeaza spre valoarea lui yy (*yy) , programu printeaza "is null" si nu inteleg de ce ? ..... xx si yy trebuiesc declarati neaparat ca pointeri la un tip , iar asignarea xx = yy trebuie facauta in func .
eu credeam ca daca dai ca argument unei functii pointeri , modificarile se salveaza si xx va pointa unde pointeaza si yy
Pagina 1 din 1
> problema cu pointeri in C > problema cu pointeri in C
#2
Scris 26 October 2008 - 02:44 AM
blackslither, la Oct 26 2008, 01:23 AM, a spus:
xx nu pointeaza spre valoarea lui yy (*yy) , programu printeaza "is null" si nu inteleg de ce ? ..... xx si yy trebuiesc declarati neaparat ca pointeri la un tip , iar asignarea xx = yy trebuie facauta in func .
eu credeam ca daca dai ca argument unei functii pointeri , modificarile se salveaza si xx va pointa unde pointeaza si yy
eu credeam ca daca dai ca argument unei functii pointeri , modificarile se salveaza si xx va pointa unde pointeaza si yy
Nu cumva yy este NULL?
Alocarile de memorie trebuiesc verificate inainte de a face operatii cu ele.
#3
Scris 26 October 2008 - 10:49 AM
blackslither, la Oct 26 2008, 12:23 AM, a spus:
un exemplu simplu ce rezuma problema mea :
void change(int *x, int *y){x=y;}
int main(){
int *xx,*yy;
yy = (int*)malloc(sizeof(int));
change(xx,yy);
if(xx == NULL)printf("is null\n");
else printf("---- %d ----\n",*xx);
.................................................. .........
xx nu pointeaza spre valoarea lui yy (*yy) , programu printeaza "is null" si nu inteleg de ce ? ..... xx si yy trebuiesc declarati neaparat ca pointeri la un tip , iar asignarea xx = yy trebuie facauta in func .
eu credeam ca daca dai ca argument unei functii pointeri , modificarile se salveaza si xx va pointa unde pointeaza si yy
void change(int *x, int *y){x=y;}
int main(){
int *xx,*yy;
yy = (int*)malloc(sizeof(int));
change(xx,yy);
if(xx == NULL)printf("is null\n");
else printf("---- %d ----\n",*xx);
.................................................. .........
xx nu pointeaza spre valoarea lui yy (*yy) , programu printeaza "is null" si nu inteleg de ce ? ..... xx si yy trebuiesc declarati neaparat ca pointeri la un tip , iar asignarea xx = yy trebuie facauta in func .
eu credeam ca daca dai ca argument unei functii pointeri , modificarile se salveaza si xx va pointa unde pointeaza si yy
corecteaza (referinta catre pointer)
void change(int *&x, int *&y)
{x=y;}
Impartaseste acest subiect:
Pagina 1 din 1
Subiecte similare
| Topic | Deschis de | Replici | Vizualizari | |
|---|---|---|---|---|
|
Am nevoie de ajutot! un sfat chiar doua nu ar strica.. | flobeats | 5 | 4.099 |
|
ajutor!
numar prim |
lcz | 6 | 4.695 |
|
linia de comanda in C | AndreiMetal | 1 | 1.282 |
|
help me
programel de contabilitate |
tyna_v | 8 | 5.953 |
|
foreach array | RHS | 4 | 1.250 |
Contact
Facebook
Twitter
RSS













