Archiwa tagu: cpp

Tworzenie dynamicznych tablic dwuwymiarowych w C

Ostatnio było o przesyłaniu tablic do funkcji, a dziś o ich tworzeniu – niezbyt chronologicznie, przekornie:)

Tablice dynamiczne – czyli takie, gdzie rozmiar tablicy zależy od zmiennych – nie jest ustalany na sztywno podczas pisania aplikacji, lecz ustawiany dopiero gdy np. użytkownik poda, ile danych chce przechowywać w tablicy. Całość zaprezentuję za pomocą przykładów:

Tworzenie i usuwanie tablicy jednowymiarowej:


int *someDynamicArray;
int ile=3;
someDynamicArray = new int[ile];
delete [] someDynamicArray;

Tworzenie i usuwanie tablicy dwuwymiarowej:


int **dynamicArray2d = new int *[3];
for (int i = 0; i < 3; ++i )
{
  dynamicArray2d[i] = new int [2];
}

for (int i=0; i < 3; i++)
{
  delete [] dynamicArray2d[i];
}
delete [] dynamicArray2d;

Tablice wyższych wymiarów (stosowane np. dla zaimplementowania tablicy trójwymiarowych wektorów) tworzy się analogicznie jak tablice drugiego rzędu.

Zaletą tablic dynamicznych jest także możliwość zaalokowania większej ilości pamięci niż w przypadku tablicy statycznej!

Dodawanie plików do linkera Visual Studio/Dev-C++

Jak dodać do projektu w Visual Studio/Dev-C++ plik do linkera? W zależności od programu oraz od wersji środowiska, jest nieco inaczej.

Dla Visual Studio 2010:

Prawym kliknąć na drzewo projektu -> Properties -> Linker -> Input -> dopisać nazwę, np. psapi.lib;

Dla Dev-C++:

Menu -> Projekt -> Opcje projektu -> Parametry -> Dodaj plik -> w katalogu DevCpp/lib znajduje się psapi.a, należy go dodać.

Dla Visual Studio 2005:

Dodawanie .lib do linkera podobno robi się to tak, aczkolwiek jeszcze nie sprawdziłam:

Prawym kliknąć na drzewo projektu -> Properties -> Linker -> pole Additional Dependencies.