Pertanyaan yang diberi tag «free»

17
Apa yang BENAR-BENAR terjadi ketika Anda tidak bebas setelah malloc?
Ini adalah sesuatu yang telah menggangguku sejak lama. Kita semua diajarkan di sekolah (setidaknya, saya dulu) bahwa Anda HARUS membebaskan setiap pointer yang dialokasikan. Saya agak penasaran, tentang biaya sebenarnya dari tidak membebaskan memori. Dalam beberapa kasus yang jelas, seperti ketika mallocdipanggil di dalam loop atau bagian dari eksekusi thread, …
538 c  malloc  free 

11
Bagaimana gratis tahu berapa banyak yang gratis?
Dalam pemrograman C, Anda dapat melewatkan pointer apa pun yang Anda suka sebagai argumen untuk dibebaskan, bagaimana ia mengetahui ukuran memori yang dialokasikan untuk dibebaskan? Setiap kali saya melewatkan pointer ke beberapa fungsi, saya juga harus melewati ukuran (yaitu array 10 elemen perlu menerima 10 sebagai parameter untuk mengetahui ukuran …
385 c  size  pointers  free 

13
Bagaimana cara kerja malloc () dan gratis ()?
Saya ingin tahu bagaimana mallocdan freebekerja. 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; } Saya akan sangat berterima kasih jika …

23
Mengatur variabel ke NULL setelah gratis
Di perusahaan saya ada aturan pengkodean yang mengatakan, setelah membebaskan memori apa pun, setel ulang variabel ke NULL. Sebagai contoh ... void some_func () { int *nPtr; nPtr = malloc (100); free (nPtr); nPtr = NULL; return; } Saya merasa bahwa, dalam kasus-kasus seperti kode yang ditunjukkan di atas, pengaturan …

10
Apakah free (ptr) di mana ptr adalah NULL memori korup?
Secara teoritis saya bisa mengatakan itu free(ptr); free(ptr); adalah kerusakan memori karena kita membebaskan memori yang telah dibebaskan. Tapi bagaimana jika free(ptr); ptr=NULL; free(ptr); Karena OS akan berperilaku dengan cara yang tidak ditentukan, saya tidak bisa mendapatkan analisis teoritis aktual untuk ini tentang apa yang terjadi. Apapun yang saya lakukan, …

8
Cara melacak kesalahan "bebas ganda atau korupsi"
Ketika saya menjalankan program (C ++) saya itu macet dengan kesalahan ini. * glibc terdeteksi * ./load: bebas ganda atau rusak (! prev): 0x0000000000c6ed50 *** Bagaimana cara melacak kesalahan tersebut? Saya mencoba menggunakan std::coutpernyataan print ( ), tidak berhasil. Bisakah gdbmembuat ini lebih mudah?
92 c++  c  debugging  free 

3
Mengapa mengembalikan nilai pengembalian gratis?
Saya membaca buku ( Pemrograman dengan POSIX Threads oleh Butenhof, 1997) yang menggunakan C, dan saya menemukan baris berikut: (void)free(data); Di sini, datahanya sebuah pointer ke struct yang dialokasikan, data = malloc(sizeof(my_struct_t)); Mengapa akibat freedilemparkan void? Dari pemahaman saya tentang C, ini sepertinya tidak masuk akal karena dua alasan: Fungsi …
82 c  casting  free  void  legacy-code 
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.