Pytania otagowane jako c

C jest językiem programowania ogólnego przeznaczenia używanym do programowania systemu (system operacyjny i wbudowane), bibliotek, gier i platform. Tego znacznika należy używać z ogólnymi pytaniami dotyczącymi języka C, zgodnie z definicją w normie ISO 9899 (najnowsza wersja, 9899: 2018, o ile nie określono inaczej - także znaczniki specyficzne dla wersji za pomocą c89, c99, c11 itd.). C różni się od C ++ i nie należy go łączyć ze znacznikiem C ++ bez uzasadnionego powodu.

13
Jak działają malloc () i free ()?
Chcę wiedzieć jak malloci freepracować. int main() { unsigned char *p = (unsigned char*)malloc(4*sizeof(unsigned char)); memset(p,0,4); strcpy((char*)p,"abcdabcd"); // **deliberately storing 8bytes** cout << p; free(p); // Obvious Crash, but I need how it works and why crash. cout << p; return 0; } Byłbym naprawdę wdzięczny, gdyby odpowiedź była dogłębnie …


18
Słowo kluczowe „zarejestruj” w C?
Co registersłowo kluczowe robi w języku C? Czytałem, że jest on wykorzystywany do optymalizacji, ale nie jest jasno zdefiniowany w żadnym standardzie. Czy nadal jest to istotne, a jeśli tak, to kiedy go użyjesz?
272 c  memory  keyword 

4
Różnica między obiektami współdzielonymi (.so), bibliotekami statycznymi (.a) i bibliotekami DLL (.so)?
Brałem udział w debacie dotyczącej bibliotek w systemie Linux i chciałbym potwierdzić pewne rzeczy. W moim rozumieniu (popraw mnie, jeśli się mylę, a później zmodyfikuję swój post), istnieją dwa sposoby korzystania z bibliotek podczas tworzenia aplikacji: Biblioteki statyczne (pliki .a): W czasie łączenia kopia całej biblioteki jest umieszczana w końcowej …
272 c++  c  linux  dll  linker 

13
Jak zdefiniować typ wyliczeniowy (wyliczenie) w C?
Nie jestem pewien, jaka jest właściwa składnia do używania znaków C. Mam następujący kod: enum {RANDOM, IMMEDIATE, SEARCH} strategy; strategy = IMMEDIATE; Ale to się nie kompiluje, z następującym błędem: error: conflicting types for ‘strategy’ error: previous declaration of ‘strategy’ was here Co ja robię źle?
272 c  enums 



23
Jak uzyskać katalog, z którego działa program?
Czy istnieje metoda niezależna od platformy i metoda niezależna od systemu plików, aby uzyskać pełną ścieżkę do katalogu, w którym program działa przy użyciu C / C ++? Nie mylić z bieżącym katalogiem roboczym. (Proszę nie sugerować bibliotek, chyba że są to standardowe biblioteki, takie jak clib lub STL.) (Jeśli …
269 c++  c  working-directory 

30
Jak uniknąć łańcuchów „jeśli”?
Zakładając, że mam ten pseudo-kod: bool conditionA = executeStepA(); if (conditionA){ bool conditionB = executeStepB(); if (conditionB){ bool conditionC = executeStepC(); if (conditionC){ ... } } } executeThisFunctionInAnyCase(); Funkcje executeStepXpowinny być wykonywane tylko wtedy, gdy poprzednie zakończyły się powodzeniem. W każdym razie executeThisFunctionInAnyCasefunkcja powinna zostać wywołana na końcu. Jestem początkującym …

8
Co faktycznie robi otwarcie pliku?
We wszystkich językach programowania (których przynajmniej używam) musisz otworzyć plik, zanim będziesz mógł go odczytać lub napisać. Ale co właściwie robi ta otwarta operacja? Strony podręcznika dla typowych funkcji tak naprawdę nie mówią nic poza tym, że „otwiera plik do odczytu / zapisu”: http://www.cplusplus.com/reference/cstdio/fopen/ https://docs.python.org/3/library/functions.html#open Oczywiście poprzez użycie funkcji można …
266 c  linux 


3
Dlaczego operator strzałki (->) w C istnieje?
Operator dot ( .) służy do uzyskiwania dostępu do elementu struktury, podczas gdy operator strzałki ( ->) w C służy do uzyskiwania dostępu do elementu struktury, do którego odwołuje się dany wskaźnik. Sam wskaźnik nie ma żadnych elementów, do których można uzyskać dostęp za pomocą operatora kropki (w rzeczywistości jest …
264 c  pointers  dereference 

14
Jak utworzyć tablicę ciągów w C?
Próbuję utworzyć tablicę ciągów znaków w C. Jeśli użyję tego kodu: char (*a[2])[14]; a[0]="blah"; a[1]="hmm"; gcc daje mi „ostrzeżenie: przypisanie z niezgodnego typu wskaźnika”. Jaki jest właściwy sposób to zrobić? edytuj: Jestem ciekawy, dlaczego powinno to dać kompilatorowi ostrzeżenie, ponieważ jeśli to zrobię printf(a[1]);, to poprawnie wypisuje „hmm”.
263 c  arrays  string 

10
Szybki pułap podziału liczb całkowitych w C / C ++
Podane wartości liczb całkowitych xoraz yC i C ++ zwracają jako iloraz q = x/ypodłogi ekwiwalentu zmiennoprzecinkowego. Zamiast tego interesuje mnie metoda zwrotu sufitu. Na przykład ceil(10/5)=2i ceil(11/5)=3. Oczywiste podejście obejmuje coś takiego: q = x / y; if (q * y < x) ++q; Wymaga to dodatkowego porównania i …
262 c++  c  algorithm  math 


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.