#include <stdlib.h>
void *malloc(size_t rozmiar); void free(void *wskaznik); void *realloc(void *wskaznik, size_t rozmiar); void *calloc(size_t ile, size_t rozmiar);
Dokładny opis powyższych funkcji na stornie Wikipedii
Funkcje z biblioteki stdlib
Przykład zastosowania funkcji malloc()
#include <stdio.h> #include <stdlib.h> int main() { float stab[10]; float *dtab; int n,i; printf("Podaj rozmiar :"); scanf("%d",&n); dtab = (float *) malloc(n * sizeof(float)); if(dtab == NULL) { printf("Blad przydzialu pamieci\n"); exit(1); } for(i=0;i<n;i++) { *(dtab+i) = rand()/(RAND_MAX + 1.0); *(stab+i) = dtab[i]; // Blad gdy n > 10 } while(--n >= 0) printf("%.4f %.4f\n",dtab[n],stab[n]); free(dtab); // free(stab); !!! Blad }
Biblioteka operacji na macierzach
macierz.h zadeklaruj strukturę o nazwie macierz która zawiera następujące pola: w typu całkowitego określające ilość wierszy macierzyk typu całkowitego określające ilość kolumn macierzywsp typu float** (wskaźnik do wskaźnika do liczby rzeczywistej), tutaj w dynamicznie utworzonej macierzy o odpowiedniej liczbie wierszy i kolumn przechowywane będą elementy macierzymacierz.h i macierz.c zadeklaruj i zdefiniuj następujące funkcje:utwórz_macierz - argumentami funkcji są rozmiary macierzy (ilość wierszy i kolumn). Wartością zwracaną jest struktura macierz (zobacz punkt wyżej) posiadająca pole wsp zawierające adres do dynamicznie utworzonej macierzy typu float (tablica zawierająca wskaźniki typu float) lub NULL gdy tworzenie macierzy się nie powiodłowczytaj_macierz - dla danej w argumencie macierzy wczytuje ze standardowego wejścia (z klawiatury) wszystkie elementywyświetl_macierz - wyświetla na standardowym wyjściu (na ekranie) zawartość podanej w argumencie macierzy zwolnij_macierz - zwalnia pamięć zajętą przez macierzdodaj_macierze - wykonuje operację dodawania dwóch macierzy (o odpowiednich rozmiarach). Argumentami funkcji są dwie macierze (zakładamy, że macierze posiadają identyczne wymiary). Wartością zwracaną jest struktura zawierająca nową macierz - rezultat dodawania. W przypadku gdy dodawane macierze posiadają różne wymiary wówczas funkcja zwraca pustą macierz (liczba wierszy i kolumn wynosi 0 a wskaźnik do elementów zawiera wartość NULL).iloczyn, która wykonuje morzenie dwóch macierzy. Funkcja zwraca nową macierz (odpowiednią strukturę) zawierającą wynik operacji mnożenia lub pustą macierz gdy podane macierze miały nieodpowiedni rozmiar