Pertanyaan yang diberi tag «c»

C adalah bahasa pemrograman tujuan umum yang digunakan untuk pemrograman sistem (OS dan tertanam), perpustakaan, game, dan lintas-platform. Tag ini harus digunakan dengan pertanyaan umum tentang bahasa C, sebagaimana didefinisikan dalam standar ISO 9899 (versi terbaru, 9899: 2018, kecuali ditentukan lain - juga tag permintaan versi khusus dengan c89, c99, c11, dll). C berbeda dari C ++ dan tidak boleh digabungkan dengan tag C ++ tanpa alasan yang rasional.

8
Bagaimana tepatnya cara kerja rekursi ekor?
Saya hampir mengerti cara kerja rekursi ekor dan perbedaan antara rekursi itu dan rekursi normal. Saya hanya tidak mengerti mengapa tidak memerlukan tumpukan untuk mengingat alamat pengirimnya. // tail recursion int fac_times (int n, int acc) { if (n == 0) return acc; else return fac_times(n - 1, acc * …

13
Menemukan duplikat dalam ruang O (n) dan O (1)
Input: Diberikan sebuah array dari n elemen yang berisi elemen dari 0 hingga n-1, dengan salah satu dari angka-angka ini muncul berapa kali. Sasaran: Untuk menemukan bilangan berulang ini dalam O (n) dan hanya menggunakan ruang memori yang konstan. Misalnya, misalkan n menjadi 7 dan array menjadi {1, 2, 3, …
121 c++  c  algorithm 

23
Apa yang dimiliki alat pendidikan untuk mendemonstrasikan asumsi tidak beralasan yang dibuat orang dalam C / C ++?
Saya ingin menyiapkan sedikit alat pendidikan untuk SO yang akan membantu programmer pemula (dan menengah) untuk mengenali dan menantang asumsi mereka yang tidak beralasan di C, C ++ dan platform mereka. Contoh: "bilangan bulat membungkus" "setiap orang memiliki ASCII" "Saya dapat menyimpan penunjuk fungsi dalam kekosongan *" Saya membayangkan bahwa …

17
Apa gunanya malloc (0)?
Saya baru saja melihat kode ini : artist = (char *) malloc(0); ... dan saya bertanya-tanya mengapa orang melakukan ini?
121 c  malloc 

21
Mengapa alamat nol digunakan untuk penunjuk nol?
Dalam C (atau C ++ dalam hal ini), pointer menjadi spesial jika memiliki nilai nol: Saya disarankan untuk mengatur pointer ke nol setelah membebaskan memori mereka, karena itu berarti membebaskan pointer lagi tidak berbahaya; ketika saya memanggil malloc itu mengembalikan sebuah pointer dengan nilai nol jika tidak bisa mendapatkan saya …
121 c++  c  memory  pointers 

6
soket menghubungkan () vs mengikat ()
Keduanya connect()dan bind()panggilan sistem 'mengasosiasikan' deskriptor file soket ke sebuah alamat (biasanya kombinasi ip / port). Prototipe mereka seperti: - int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); dan int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); Apa perbedaan persis antara 2 panggilan? Kapan sebaiknya digunakan connect()dan kapan …

3
Penggabungan string makro C / C ++
#define STR1 "s" #define STR2 "1" #define STR3 STR1 ## STR2 Apakah mungkin untuk menggabungkan STR3 == "s1"? Anda dapat melakukan ini dengan meneruskan args ke fungsi Makro lainnya. Tetapi apakah ada cara langsung?
121 c++  c  c-preprocessor 


22
Posisi bit paling tidak signifikan yang ditetapkan
Saya mencari cara yang efisien untuk menentukan posisi bit paling tidak signifikan yang diatur dalam bilangan bulat, misalnya untuk 0x0FF0 akan menjadi 4. Implementasi sepele adalah ini: unsigned GetLowestBitPos(unsigned value) { assert(value != 0); // handled separately unsigned pos = 0; while (!(value & 1)) { value >>= 1; ++pos; …



6
Mengapa segmen .bss diperlukan?
Yang saya tahu adalah bahwa variabel global dan statis disimpan di .datasegmen, dan data yang tidak diinisialisasi ada di .bsssegmen tersebut. Yang tidak saya mengerti adalah mengapa kami memiliki segmen khusus untuk variabel yang tidak diinisialisasi? Jika variabel yang tidak diinisialisasi memiliki nilai yang ditetapkan pada waktu proses, apakah variabel …

10
Buat penunjuk ke array dua dimensi
Saya memerlukan penunjuk ke array 2 dimensi statis. Bagaimana ini dilakukan? static uint8_t l_matrix[10][20]; void test(){ uint8_t **matrix_ptr = l_matrix; //wrong idea } Saya mendapatkan semua jenis kesalahan seperti: peringatan: tugas dari tipe penunjuk yang tidak kompatibel nilai yang disubscribe bukanlah array atau pointer kesalahan: penggunaan anggota larik fleksibel tidak …
120 c  arrays  pointers 

9
C pointer: menunjuk ke array dengan ukuran tetap
Pertanyaan ini ditujukan kepada guru C di luar sana: Di C, dimungkinkan untuk mendeklarasikan pointer sebagai berikut: char (* p)[10]; .. yang pada dasarnya menyatakan bahwa penunjuk ini menunjuk ke larik 10 karakter. Hal yang rapi tentang mendeklarasikan pointer seperti ini adalah Anda akan mendapatkan kesalahan waktu kompilasi jika Anda …
120 c  pointers  size 

13
cetak tumpukan panggilan dalam C atau C ++
Apakah ada cara untuk membuang tumpukan panggilan dalam proses yang sedang berjalan di C atau C ++ setiap kali fungsi tertentu dipanggil? Yang ada dalam pikiran saya adalah seperti ini: void foo() { print_stack_trace(); // foo's body return } Dimana print_stack_tracecara kerjanya mirip dengan callerdi Perl. Atau sesuatu seperti ini: …
120 c++  c  linux  callstack 

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.