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.

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 …


18
“Daftarkan” kata kunci dalam C?
Apa yang dilakukan registerkata kunci dalam bahasa C? Saya telah membaca bahwa ini digunakan untuk mengoptimalkan tetapi tidak didefinisikan dengan jelas dalam standar apa pun. Apakah masih relevan dan jika demikian, kapan Anda akan menggunakannya?
273 c  memory  keyword 


13
Bagaimana cara mendefinisikan tipe enumerasi (enum) dalam C?
Saya tidak yakin apa sintaksis yang tepat untuk menggunakan C enum. Saya memiliki kode berikut: enum {RANDOM, IMMEDIATE, SEARCH} strategy; strategy = IMMEDIATE; Tapi ini tidak dikompilasi, dengan kesalahan berikut: error: conflicting types for ‘strategy’ error: previous declaration of ‘strategy’ was here Apa yang saya lakukan salah?
272 c  enums 



23
Bagaimana cara mendapatkan direktori tempat program dijalankan?
Apakah ada metode platform-agnostik dan filesystem-agnostik untuk mendapatkan path lengkap direktori dari tempat program berjalan menggunakan C / C ++? Jangan bingung dengan direktori kerja saat ini. (Tolong jangan menyarankan perpustakaan kecuali perpustakaan yang standar seperti clib atau STL.) (Jika tidak ada metode platform / filesystem-agnostik, saran yang bekerja di …
269 c++  c  working-directory 

30
Bagaimana cara menghindari rantai "jika"?
Dengan asumsi saya punya pseudo-code ini: bool conditionA = executeStepA(); if (conditionA){ bool conditionB = executeStepB(); if (conditionB){ bool conditionC = executeStepC(); if (conditionC){ ... } } } executeThisFunctionInAnyCase(); Fungsi executeStepXharus dijalankan jika dan hanya jika sebelumnya berhasil. Bagaimanapun, executeThisFunctionInAnyCasefungsi tersebut harus dipanggil di bagian akhir. Saya seorang pemula dalam …

8
Apa yang sebenarnya dilakukan dengan membuka file?
Di semua bahasa pemrograman (setidaknya yang saya gunakan), Anda harus membuka file sebelum dapat membaca atau menulis. Tapi apa sebenarnya operasi terbuka ini? Halaman manual untuk fungsi-fungsi tipikal sebenarnya tidak memberi tahu Anda apa pun selain 'membuka file untuk membaca / menulis': http://www.cplusplus.com/reference/cstdio/fopen/ https://docs.python.org/3/library/functions.html#open Jelas, melalui penggunaan fungsi Anda dapat …
266 c  linux 


3
Mengapa operator panah (->) di C ada?
Operator dot ( .) digunakan untuk mengakses anggota struct, sedangkan operator panah ( ->) di C digunakan untuk mengakses anggota struct yang dirujuk oleh pointer yang dimaksud. Pointer itu sendiri tidak memiliki anggota yang dapat diakses dengan operator titik (sebenarnya hanya angka yang menggambarkan lokasi dalam memori virtual sehingga tidak …
264 c  pointers  dereference 

14
Bagaimana cara membuat array string di C?
Saya mencoba membuat array string dalam C. Jika saya menggunakan kode ini: char (*a[2])[14]; a[0]="blah"; a[1]="hmm"; gcc memberi saya "peringatan: tugas dari tipe pointer tidak kompatibel". Apa cara yang benar untuk melakukan ini? sunting: Saya ingin tahu mengapa ini harus memberikan peringatan kompiler karena jika saya melakukannya printf(a[1]);, ia akan …
263 c  arrays  string 

10
Plafon cepat dari divisi integer di C / C ++
Diberikan nilai integer xdan y, C dan C ++ keduanya kembali sebagai hasil bagi q = x/ylantai dari titik mengambang yang setara. Saya tertarik pada metode mengembalikan langit-langit sebagai gantinya. Sebagai contoh, ceil(10/5)=2dan ceil(11/5)=3. Pendekatan yang jelas melibatkan sesuatu seperti: q = x / y; if (q * y < …
262 c++  c  algorithm  math 


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.