cstdlib library
Főnév
cstdlib library (tsz. cstdlib libraries)
A cstdlib egy szabványos C++ könyvtár, amely számos fontos függvényt biztosít, elsősorban memóriakezelésre, konverziókra, véletlenszám-generálásra és egyéb segédfüggvényekre. Ezt a könyvtárat a <cstdlib> fejlécfájllal lehet beilleszteni a programba.
A cstdlib könyvtár funkciói főként a C nyelvből származnak, de a C++ programozás során is széles körben használják. Az alábbiakban részletesen bemutatjuk a legfontosabb függvényeket és azok használatát példákkal együtt.
1. Véletlenszám-generálás (rand() és srand())
A cstdlib könyvtárban található rand() függvény egy véletlenszerű egész számot ad vissza a [0, RAND_MAX] tartományban. Az srand() függvény segítségével beállíthatjuk a véletlenszám-generátor kezdőértékét.
Használat
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
srand(time(NULL)); // Véletlenszám-generátor inicializálása
int randomSzam = rand(); // Egy véletlen szám generálása
cout << "Véletlen szám: " << randomSzam << endl;
// 1 és 100 közötti véletlenszám generálása
int randomTartomanyban = rand() % 100 + 1;
cout << "1 és 100 közötti véletlen szám: " << randomTartomanyban << endl;
return 0;
}
Megjegyzések:
srand(time(NULL))– Biztosítja, hogy minden programfuttatás más véletlenszámokat generáljon.RAND_MAX– A lehetséges legnagyobb érték (általában 32767).
2. Memóriakezelő függvények (malloc(), calloc(), realloc(), free())
A cstdlib dinamikus memóriakezelési függvényeket is tartalmaz. Ezek hasznosak, ha a program futása során kell memóriát foglalni vagy felszabadítani.
Használat
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
// Memória foglalása egy egész számra
int* ptr = (int*)malloc(sizeof(int));
if (ptr == NULL) {
cout << "Memóriafoglalási hiba!" << endl;
return 1;
}
*ptr = 42; // Érték beállítása
cout << "Dinamukusan foglalt érték: " << *ptr << endl;
free(ptr); // Memória felszabadítása
return 0;
}
Memóriafoglalási függvények magyarázata
malloc(size_t size)– Memóriaterület foglalása adott méretben, a visszatérési érték egyvoid*típusú mutató.calloc(size_t num, size_t size)–malloc()-hoz hasonló, de az összes bájtot nullára inicializálja.realloc(void* ptr, size_t new_size)– Egy már foglalt memória újraméretezése.free(void* ptr)– Egy dinamikusan lefoglalt memóriaterület felszabadítása.
3. Szöveg és szám konverziók (atoi(), atof(), atol(), strtol(), strtod())
A cstdlib könyvtár számos függvényt tartalmaz, amelyek számokká alakítják a karakterláncokat.
Használat
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
char strInt[] = "123";
char strFloat[] = "45.67";
int szam = atoi(strInt);
double lebegopontos = atof(strFloat);
cout << "Egész szám: " << szam << endl;
cout << "Lebegőpontos szám: " << lebegopontos << endl;
return 0;
}
Konverziós függvények magyarázata
atoi(const char* str)–charkarakterláncot egész számmá alakít.atof(const char* str)–charkarakterláncot lebegőpontos számmá alakít.atol(const char* str)–charkarakterláncot hosszú egész számmá alakít.strtol(const char* str, char** endptr, int base)– Karakterláncot hosszú egésszé alakít adott számrendszer alapján.
4. Kilépési és rendszerparancsok (exit(), abort(), system())
A cstdlib könyvtár lehetőséget ad arra is, hogy kilépjünk a programból vagy külső parancsokat futtassunk.
Használat
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
cout << "Program kilép 0 exit kóddal..." << endl;
exit(0); // Program normál befejezése
return 0;
}
Fontos függvények:
exit(int status)– Azonnali kilépés a programból a megadott visszatérési kóddal.abort()– Azonnali kilépés, rendszerhiba esetén használható.system(const char* command)– Külső program vagy rendszerparancs futtatása.
Példa a system() függvényre:
#include <cstdlib>
int main() {
system("dir"); // Windows alatt futtatja a "dir" parancsot
return 0;
}
5. Példa egy komplex programra
Az alábbi program véletlenszámokat generál, dinamikusan lefoglal egy tömböt, és kiírja az elemeit.
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
srand(time(NULL)); // Véletlenszám-generátor inicializálása
int meret = 10;
int* tomb = (int*)malloc(meret * sizeof(int));
if (tomb == NULL) {
cout << "Memóriafoglalási hiba!" << endl;
return 1;
}
// Véletlenszámok feltöltése
for (int i = 0; i < meret; i++) {
tomb[i] = rand() % 100;
cout << tomb[i] << " ";
}
cout << endl;
free(tomb); // Memória felszabadítása
return 0;
}
Összegzés
A cstdlib könyvtár rengeteg hasznos függvényt tartalmaz, amelyek elengedhetetlenek véletlenszám-generáláshoz, memóriakezeléshez, konverziókhoz és rendszerparancsok futtatásához. Használata egyszerű, de mindig figyeljünk a memória kezelésére és a megfelelő inicializálásra.
Ha C++-ban dolgozol, érdemes átgondolni a modernebb alternatívákat, például std::random, std::unique_ptr, és std::stoi használatát.
- cstdlib library - Szótár.net (en-hu)
- cstdlib library - Sztaki (en-hu)
- cstdlib library - Merriam–Webster
- cstdlib library - Cambridge
- cstdlib library - WordNet
- cstdlib library - Яндекс (en-ru)
- cstdlib library - Google (en-hu)
- cstdlib library - Wikidata
- cstdlib library - Wikipédia (angol)