CATEGORII DOCUMENTE |
Initializarea pointerilor
Secventa:
char *p;
char s[] = 'Hello world n ';
p = s; /* p indica spre s */
este echivalenta cu:
char *p = 'Hello world n';
Intr-un program, p din ultima declaratie poate fi utilizat ca orice alt sir. Astfel, programul urmator este corect:
# include <stdio.h>
char *p = ' Hello world n ';
void main (void)
Observatie: Neinitializarea pointerilor sau initializarea gresita a acestora, poate duce la erori care, in cazul programelor de dimensiuni mari, sunt foarte greu de depistat si pot avea urmari catastrofale.
Exemplu: Consideram programul:
# include <stdio.h>
void main(void)
Acest program atribuie valoarea 10 anumitor locatii de memorie necunoscute. Programul nu va oferi niciodata o valoare pointerului p dar va tipari valoarea lui x.
Exemplu: Consideram acum urmatorul program:
# include <stdio.h>
void main (void)
Functia printf() nu va afisa niciodata valoarea lui x (care este 10), dar va tipari o valoare necunoscuta. Aceasta datorita atribuirii gresite:
p = x;
Instructiunea atribuie valoarea 10 pointerului p, care se presupune ca reprezinta o adresa si nu o valoare. Pentru a corecta programul, trebuie scris: p = &x;
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 819
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved