Pertanyaan yang diberi tag free

385
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...

156
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...

92
biaya operasi atom

Berapa biaya operasi atom (salah satu dari perbandingan-dan-tukar atau penambahan / pengurangan atom)? Berapa siklus yang dikonsumsi? Apakah akan menjeda prosesor lain di SMP atau NUMA, atau akan memblokir akses memori? Apakah itu akan membersihkan buffer pemesanan ulang di CPU yang rusak? Efek...

92
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...

82
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...