This shows you the differences between two versions of the page.
programare:tutoriale:read_docs [2022/01/24 16:29] stefan.popa99 [Ce este o bibliotecă? Dar un framework? Dar un API?] |
programare:tutoriale:read_docs [2022/01/24 16:38] (current) stefan.popa99 [Dezavantaje] |
||
---|---|---|---|
Line 65: | Line 65: | ||
* Observație: cele 2 metode se aplică și comenzilor Linux - de exemplu, încercați să cautați cu ''%%man ls%%'' sau ''%%man grep%%''. | * Observație: cele 2 metode se aplică și comenzilor Linux - de exemplu, încercați să cautați cu ''%%man ls%%'' sau ''%%man grep%%''. | ||
* [[https://docs.microsoft.com/en-us/cpp/c-language/?view=msvc-170|Windows]] - documentație oficială Microsoft pentru **Windows**; | * [[https://docs.microsoft.com/en-us/cpp/c-language/?view=msvc-170|Windows]] - documentație oficială Microsoft pentru **Windows**; | ||
- | * [[http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf|ANSI C]] - o variantă free de documentație pentru ANSI C. Există și variantă non-free. 9a6956437b897ff580a30bb2c9d7a5811c36479b | + | * [[http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf|ANSI C]] - o variantă free de documentație pentru ANSI C. Există și variantă non-free. |
* **C++**: La fel ca la C, nu există o documentație oficială pentru tot limbajul. Exemple de documentații: | * **C++**: La fel ca la C, nu există o documentație oficială pentru tot limbajul. Exemple de documentații: | ||
* [[https://en.cppreference.com/|C++ Reference]] | * [[https://en.cppreference.com/|C++ Reference]] | ||
Line 286: | Line 286: | ||
cel mai probabil veți primi [[https://en.wikipedia.org/wiki/Segmentation_fault|Segmentation fault]]. | cel mai probabil veți primi [[https://en.wikipedia.org/wiki/Segmentation_fault|Segmentation fault]]. | ||
- | Așadar, practic vorbind, cele 2 coduri se comportă diferit. Deși primul cod pare că merge în anumite cazuri, în realitate el va ascunde un memory leak care vă poate cauza comportament nedefinit (EN: [[https://en.wikipedia.org/wiki/Undefined_behavior|undefined_behavior - UB]]). Să rulam cu valgrind acest program: | + | Așadar, practic vorbind, cele 2 coduri se comportă diferit. Deși primul cod pare că merge în anumite cazuri, în realitate el va ascunde un acces invalid la memorie pentru că se încearcă scrierea la o adresă de memorie nealocată. Să rulam cu valgrind acest program: |
<code cpp> | <code cpp> |