«malloc» etiketlenmiş sorular

Malloc işlevi, C'de dinamik bellek tahsisi gerçekleştirir ve standart kitaplığın bir parçasıdır. Malloc'un kullanımı, davranışı ve uygulamaları hakkındaki sorular için bu etiketi kullanın.

28
Malloc'un sonucunu atar mıyım?
Gelen bu soruya , birisi bir önerilen yorumun ı gerektiğini değil sonucunu döküm malloc, yani int *sieve = malloc(sizeof(int) * length); ziyade: int *sieve = (int *) malloc(sizeof(int) * length); Neden böyle olsun?
2408 c  malloc  casting 

13
Malloc ve calloc arasındaki fark nedir?
Doing arasındaki fark nedir: ptr = (char **) malloc (MAXELEMS * sizeof(char *)); veya: ptr = (char **) calloc (MAXELEMS, sizeof(char*)); Malloc üzerinde calloc kullanmak ne zaman iyi bir fikirdir?
780 c  malloc  calloc 

17
Malloc'dan sonra serbest kalmadığınızda GERÇEKTEN ne olur?
Bu, uzun zamandır beni rahatsız eden bir şey oldu. Hepimize okulda (en azından ben) tahsis edilen her işaretçiyi serbest bırakmanız GEREKİR. Yine de, hafızayı boşaltmamanın gerçek maliyeti hakkında biraz merak ediyorum. Bazı açık durumlarda, mallocbir döngü içinde veya bir iş parçacığı yürütmesinin bir parçası olarak çağrıldığında olduğu gibi, serbest bırakmak …
538 c  malloc  free 

19
Hangi durumlarda malloc ve / veya new kullanırım?
C ++ 'da veri tahsis etmenin ve serbest bırakmanın birden fazla yolu olduğunu görüyorum ve aradığınızda aramanız mallocgerektiğini freeve newoperatörü kullandığınızda eşleştirmeniz gerektiğini deleteve ikisini karıştırmanın bir hata olduğunu anlıyorum (örneğin free(), oluşturulan bir şeye çağrı yapmak) ile new) operatörü, ama ben kullanmalıyım zaman net değilim malloc/ freeve kullanmam gereken …

25
Neden alloca () kullanımı iyi uygulama olarak kabul edilmiyor?
alloca() bellekte olduğu gibi yığın yerine bellek ayırır malloc() . Böylece, rutinden döndüğümde bellek boşalır. Yani, aslında bu, dinamik olarak ayrılmış belleği boşaltma sorunumu çözdü. Ayrılan belleğin boşaltılması malloc()büyük bir baş ağrısıdır ve bir şekilde kaçırılırsa her türlü bellek sorununa yol açar. alloca()Yukarıdaki özelliklere rağmen neden cesaretiniz kırılıyor?
400 c  stack  malloc  allocation  alloca 

13
Malloc () ve free () nasıl çalışır?
Ben nasıl bilmek istiyorum mallocve freeçalışması. 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; } Cevabın hafıza düzeyinde derinlemesine olması mümkünse …

3
Malloc + Memset neden calloc'dan daha yavaş?
Ayrılan belleği başlattığından callocfarklı olduğu bilinmektedir malloc. İle callocbellek sıfıra ayarlanır. İle mallocbellek temizlenmez. Günlük işlerde + callocolarak görüyorum . Bu arada, eğlence için, bir kıyaslama için aşağıdaki kodu yazdım.mallocmemset Sonuç kafa karıştırıcı. Kod 1: #include<stdio.h> #include<stdlib.h> #define BLOCK_SIZE 1024*1024*256 int main() { int i=0; char *buf[10]; while(i<10) { buf[i] …
256 c  malloc 


1
“C Programlama Dili” kitabı neden malloc kullanmam gerektiğini söylüyor?
Bugün sayfasına ulaştığı 167 arasında Dili (ikinci baskısı Brian W. Kernighan & Dennis M. Ritchie) Programlama C ve yazar yayınlayabileceğim gerektiğini söylüyor bulundu malloc. İşte kitabın bölümü: 7.8.5 Depolama Yönetimi Malloc ve calloc işlevleri bellek bloklarını dinamik olarak alır. void *malloc(size_t n) başlatılmamış depolama alanının n baytına bir işaretçi veya …

23
Serbest bırakıldıktan sonra değişkeni NULL olarak ayarlama
Şirketimde, herhangi bir belleği boşalttıktan sonra değişkeni sıfırlayan bir kodlama kuralı var NULL. Örneğin ... void some_func () { int *nPtr; nPtr = malloc (100); free (nPtr); nPtr = NULL; return; } Yukarıda gösterilen kod gibi durumlarda, ayarının NULLherhangi bir anlamı olmadığını hissediyorum . Yoksa bir şey mi kaçırıyorum? Böyle …

5
Yerleşik 'malloc' işlevinin uyumsuz örtülü bildirimi
Bu hatayı alıyorum: uyarı: yerleşik 'malloc' işlevinin uyumsuz örtülü bildirimi Bunu yapmaya çalışıyorum: fileinfo_list* tempList = malloc(sizeof(fileinfo_list)); Sadece referans için eldeki yapı: typedef struct { fileinfo** filedata; size_t nFiles; size_t size; size_t fileblock; } fileinfo_list; Yaptığım şeyde yanlış bir şey görmüyorum. Sadece tempList1 x boyutunda bir tane oluşturuyorum fileinfo_list.
155 c  struct  malloc 




8
Malloc vs yeni - farklı dolgu
Yüksek performanslı bilgi işlem (10 ^ 5 - 10 ^ 6 çekirdek) için MPI kullanan projemiz için başka birinin C ++ kodunu gözden geçiriyorum. Kodun, farklı mimarilerdeki (potansiyel olarak) farklı makineler arasında iletişime izin vermesi amaçlanmıştır. Şu satırlar boyunca bir şeyler söyleyen bir yorum yazdı: Normalde newve kullanırdık delete, ama …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.