wild pointer
Megjelenés
Főnév
wild pointer (tsz. wild pointers)
- (informatika) A wild pointer (vadmutató) C++-ban olyan mutató, amely nem mutat érvényes memóriaterületre. Ez általában akkor fordul elő, ha egy mutatót deklarálunk, de nem inicializáljuk, vagy ha egy dinamikusan foglalt memóriát felszabadítunk, de továbbra is a mutatóval próbálunk rá hivatkozni.
Példák vadmutatókra:
1. Nem inicializált mutató
Ha egy mutatót létrehozunk, de nem adjuk meg neki, hogy hová mutasson, akkor az véletlenszerű memóriacímre mutathat.
#include <iostream>
int main() {
int* ptr; // Vadmutató, mert nem inicializált
std::cout << *ptr; // Nem biztonságos, ismeretlen memóriát olvas!
return 0;
}
Ez undefined behavior-t (meghatározatlan viselkedést) okoz, mert a ptr mutató nem mutat érvényes helyre.
2. Törölt mutató használata
Ha egy dinamikusan foglalt memóriaterületet felszabadítunk, de továbbra is próbáljuk használni a mutatót, akkor az is vadmutatóvá válik.
#include <iostream>
int main() {
int* ptr = new int(10);
delete ptr; // Felszabadítjuk a memóriát
std::cout << *ptr; // Undefined behavior! Vadmutató használata
return 0;
}
Hogyan lehet elkerülni a vadmutatókat?
Inicializáljuk a mutatókat nullára:
int* ptr = nullptr;
Használjunk
nullptr-t a felszabadítás után:delete ptr; ptr = nullptr;
Használjunk okosmutatókat (
std::unique_ptr,std::shared_ptr), hogy a memória automatikusan felszabaduljon:#include <memory> int main() { std::unique_ptr<int> ptr = std::make_unique<int>(10); return 0; // Memória automatikusan felszabadul }
Kerüljük a nyers mutatók használatát, ha lehetséges.
Vadmutatók használata komoly programozási hibákhoz vezethet, például memóriakorrupcióhoz és programösszeomláshoz.
- wild pointer - Szótár.net (en-hu)
- wild pointer - Sztaki (en-hu)
- wild pointer - Merriam–Webster
- wild pointer - Cambridge
- wild pointer - WordNet
- wild pointer - Яндекс (en-ru)
- wild pointer - Google (en-hu)
- wild pointer - Wikidata
- wild pointer - Wikipédia (angol)