Pytania otagowane jako malloc

Funkcja malloc wykonuje dynamiczną alokację pamięci w języku C i jest częścią biblioteki standardowej. Użyj tego tagu, jeśli masz pytania dotyczące użycia, zachowania i implementacji malloc.

28
Czy rzucam wynik malloc?
W tej kwestii , ktoś sugerowane w komentarzu , że powinienem nie rzucać wynik malloc, czyli int *sieve = malloc(sizeof(int) * length); zamiast: int *sieve = (int *) malloc(sizeof(int) * length); Dlaczego miałoby tak być?
2406 c  malloc  casting 

13
Różnica między malloc a calloc?
Jaka jest różnica między robieniem: ptr = (char **) malloc (MAXELEMS * sizeof(char *)); lub: ptr = (char **) calloc (MAXELEMS, sizeof(char*)); Kiedy warto używać calloc zamiast malloc lub odwrotnie?
779 c  malloc  calloc 

17
Co NAPRAWDĘ dzieje się, gdy nie zwalniasz po Malloc?
To mnie martwiło od wieków. Wszyscy uczymy się w szkole (przynajmniej ja byłem), że MUSISZ uwolnić każdy przydzielony wskaźnik. Jestem jednak trochę ciekawy, jakie są rzeczywiste koszty nie zwalniania pamięci. W niektórych oczywistych przypadkach, takich jak mallocwywołanie w pętli lub części wykonania wątku, bardzo ważne jest zwolnienie, aby nie było …
538 c  malloc  free 

19
W jakich przypadkach używam malloc i / lub nowego?
Widzę w C ++, że istnieje wiele sposobów przydzielania i bezpłatnego przesyłania danych. Rozumiem, że kiedy dzwonisz malloc, powinieneś zadzwonić, freea kiedy używasz newoperatora, powinieneś się sparować deletei błędem jest połączenie tych dwóch (np. Dzwonienie free()na coś, co zostało stworzone z newoperatorem), ale nie jestem pewien, kiedy powinienem używać malloc/ …

25
Dlaczego korzystanie z funkcji splita () nie jest uważane za dobrą praktykę?
alloca()przydziela pamięć na stosie, a nie na stercie, jak w przypadku malloc(). Kiedy wracam z rutyny, pamięć zostaje uwolniona. Tak więc faktycznie rozwiązuje to mój problem zwalniania dynamicznie alokowanej pamięci. Zwolnienie pamięci przydzielonej przez malloc()to poważny ból głowy i jeśli w jakiś sposób pominięty, prowadzi do różnego rodzaju problemów z …
400 c  stack  malloc  allocation  alloca 

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 …

3
Dlaczego zestaw malloc + jest wolniejszy niż calloc?
Wiadomo, że callocróżni się od malloctego, że inicjalizuje przydzieloną pamięć. Za callocpomocą pamięć jest ustawiona na zero. Zmalloc pomocą pamięć nie zostanie wyczyszczona. Tak więc w codziennej pracy uważam callocza malloc+memset . Nawiasem mówiąc, dla zabawy napisałem następujący kod dla testu porównawczego. Wynik jest mylący. Kod 1: #include<stdio.h> #include<stdlib.h> #define …
256 c  malloc 



23
Ustawienie zmiennej na NULL po zwolnieniu
W mojej firmie obowiązuje zasada kodowania, która mówi, że po zwolnieniu pamięci należy zresetować zmienną do NULL. Na przykład ... void some_func () { int *nPtr; nPtr = malloc (100); free (nPtr); nPtr = NULL; return; } Czuję, że w przypadkach takich jak w kodzie pokazanym powyżej, ustawienie na NULLnie …

5
Niezgodna niejawna deklaracja funkcji wbudowanej „malloc”
Otrzymuję ten błąd: ostrzeżenie: niekompatybilna niejawna deklaracja funkcji wbudowanej „malloc” Próbuję to zrobić: fileinfo_list* tempList = malloc(sizeof(fileinfo_list)); Dla porównania, struktura używana pod ręką to: typedef struct { fileinfo** filedata; size_t nFiles; size_t size; size_t fileblock; } fileinfo_list; Nie widzę nic złego w tym, co zrobiłem. Po prostu tworzę a tempListo …
155 c  struct  malloc 

17
Jaki jest sens malloc (0)?
Właśnie zobaczyłem ten kod: artist = (char *) malloc(0); ... i zastanawiałem się, dlaczego ktoś miałby to zrobić?
121 c  malloc 



8
Malloc vs New - inna wyściółka
Sprawdzam czyjś kod C ++ dla naszego projektu, który używa MPI do obliczeń o wysokiej wydajności (10 ^ 5 - 10 ^ 6 rdzeni). Kod ma umożliwić komunikację między (potencjalnie) różnymi maszynami na różnych architekturach. Napisał komentarz, który mówi coś w rodzaju: Zwykle używamy newi delete, ale tutaj używam malloci …

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.