Chyba wrócę do bycia interopem. Można dostać euforii (żeby nie nazwać tego inaczej) kiedy wywołuje się w swoim kodzie czyiś kod, zwłaszcza, jeżeli nie był on dedykowany specjalnie na Twoją platformę. Kiedy wywołujesz jakąś losową dllkę, napisaną w czymkolwiek pod cokolwiek… a już najwyższym stopniem tejże euforii będzie … wywołanie funkcji z dllki systemowej. Takiej wiecie, System32 czy coś… takiej, no weźmy kernel32.dll. Brzmi strasznie. Zróbmy coś, od czego komp nie wybuchnie. Ustawmy mu czas.
Kategoria: c++
Tego posta miało nie być. W bardziej zwięzłej formie miałam napisać (i napisałam) zwykły komentarz na blogu. Niestety nie dało rady z tym komentarzem u niego, w takim razie opiszę tutaj.
Owo zamieszanie wywołało we mnie zdanie:
Hackaton to impreza polegająca na 24 godzinnym programowaniu – bez przerwy. Zakładamy, że każdy uczestnik będzie miał możliwość wybrania technologii oraz języka programowania. Członkowie naszego…
Operator new – kilka słów na jego temat
Operator new, jak zapewne wszyscy wiedzą służy w językach obiektowych/ zorientowanych obiektowo do kreacji nowych obiektów. W przypadku języka C++ używamy go również do tworzenia zmiennych dynamicznych typów wbudowanych, na które pokazuje wskaźnik. Zmienna dynamiczna bowiem sama w sobie nazwy niestety nie ma. Ale ma adres który można przypisać do wskaźnika, a to nam w zupełności wystarczy do posługiwania się nią. Zmienna dynamiczna nie podlega prawom zakresu ważności (co innego wskaźnik, który na tą zmienną pokazuje). Jeżeli w danym zakresie ważności mamy dostęp do przynajmniej jednego wskaźnika na zaalokowany obszar pamięci, będzie od dostępny. Tracimy zmienną dopiero po użyciu bliźniaczego operatora delete (którym nie będziemy się zajmować w tym artykule). Wybaczcie mi to masło maślane.
Zmienne tworzone dynamicznie w języku c++ nie są zerowane, należy o tym pamiętać.
Artykuł ten stanowi vademecum posługiwania się tym operatorem na (prawie) wszystkie możliwe sposoby. Ograniczymy się przy tym do języka c++. Ma on także za zadanie rozbudzić waszą ciekawość do zbadania tego, co nieznane.
Czasami zdarza się, że człowiek nie ma aktualnie potrzebnego narzędzia. Pobieranie z neta jest albo niemożliwe, albo zajmie zbyt dużo czasu, a człowiek chce plikowi w bebechy zajrzeć. No i poczułam coś takiego i klepnęłam taki kawałek kodu (thx widmo za podpowiedź co do zmiany define na wartość predefiniowaną)
Hmm, kilkanaście, może kilkadziesiąt minut, aby pokapować się, że otwartego pliku usunąć się nie da;) Nooo nieładnie Piątkosia. Idlecode: gdzie tu niby miałby być haczyk?…
Chciałabym nawiązać do posta, w którym pisałam o kodowaniu (jego kopia znajduje się tutaj).
Próbuję kodzić coraz więcej ( w tym przypadku na system windows) i zaczyna mi przeszkadzać już fakt konwertowania
gżegżółką po każdej poprawnej kompilacji, i kompilacja wyniku. Mogłabym dodać wersję tego programu i utworzyć
makefile ale…
Zawsze to nadprodukcja śmieci i dodatkowe dziesiątki milisekund i operacje na plikach, których możnaby uniknąć.
Jest na to sposób. A mianowicie (działa tylko przy czcionce Lucida Console, przy standardowej krzaczy:( )
wystarczy na początku wpisać linijkę system(„chcp 1250>NUL”); zaś na końcu programu , system(„chcp 852>NUL”); by
zostawić tak, jak jest defaultowo. Aaa i nie mylić NUL z NULL, tam serio nie ma błędu. Nie zapomniałam tego L. Po
prostu tak się ten pseudo plik zwie. Obecnie mój kod wygląda niestety tak
Dobra. Jakiś czas mnie nie było, może zacznę więc od krótkiego co u mnie. Jakiś tydzień temu wyszłam z dołka i nadrabiam zaległości, poza tym semestr zakończyłam bez poprawki, z wynikiem „do przyjęcia”, choć mogło być lepiej.
Tak się ostatnio bawię kodem, bo mi się nudzi. Nie wychodzi z tego zbyt wiele, ale zawsze coś. Jestem z natury „filozofką”, chciałam zobaczyć, czy przypadkiem programowanie c-like nie jest w cpp tylko jako nakładka dla wstecznej kompatybilności. W jaki sposób szukałam tego dziwnego „czegoś”? Szukałam obiektowości tam, gdzie wg języka C nie powinno jej być, a mianowicie w interpretowaniu jako klas typów wbudowanych, struktur i unii.
Ostatnio się bawiłam w kodzie. (Thx idlecode za podsunięcie pomysłu) i wyszło mi coś takiego. Poziom może niski, ale przynajmniej działa. Jak co pejstnę: #include…
Właśnie walnęłam sobie taki kodzik: #include <iostream> #include <string> #include <fstream> #include <boost/filesystem.hpp> #pragma hdrstop using namespace boost::filesystem; using namespace std; int main(int argc, char**…