Questions marquées «c»

C est un langage de programmation à usage général utilisé pour la programmation système (OS et embarqué), les bibliothèques, les jeux et les plateformes multiples. Cette balise doit être utilisée avec des questions générales concernant le langage C, tel que défini dans la norme ISO 9899 (la dernière version, 9899: 2018, sauf indication contraire - également balise les demandes spécifiques à la version avec c89, c99, c11, etc.). C est distinct de C ++ et il ne doit pas être combiné avec la balise C ++ en l'absence d'une raison rationnelle.

13
Comment fonctionnent malloc () et free ()?
Je veux savoir comment mallocet freetravailler. 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; } Je serais vraiment reconnaissant si la …


18
Mot-clé «enregistrer» en C?
Que fait le registermot-clé en langage C? J'ai lu qu'il est utilisé pour l'optimisation mais n'est clairement défini dans aucune norme. Est-il toujours pertinent et si oui, quand l'utiliseriez-vous?
273 c  memory  keyword 


13
Comment définir un type énuméré (enum) en C?
Je ne sais pas quelle est la syntaxe appropriée pour utiliser les énumérations C. J'ai le code suivant: enum {RANDOM, IMMEDIATE, SEARCH} strategy; strategy = IMMEDIATE; Mais cela ne se compile pas, avec l'erreur suivante: error: conflicting types for ‘strategy’ error: previous declaration of ‘strategy’ was here Qu'est-ce que je …
272 c  enums 




30
Comment éviter les chaînes «si»?
En supposant que j'ai ce pseudo-code: bool conditionA = executeStepA(); if (conditionA){ bool conditionB = executeStepB(); if (conditionB){ bool conditionC = executeStepC(); if (conditionC){ ... } } } executeThisFunctionInAnyCase(); Les fonctions executeStepXdoivent être exécutées si et seulement si la précédente réussit. Dans tous les cas, la executeThisFunctionInAnyCasefonction doit être appelée …

8
Que fait réellement l'ouverture d'un fichier?
Dans tous les langages de programmation (que j'utilise au moins), vous devez ouvrir un fichier avant de pouvoir y lire ou y écrire. Mais que fait réellement cette opération ouverte? Les pages de manuel pour les fonctions typiques ne vous disent rien d'autre que d'ouvrir un fichier en lecture / …
266 c  linux 


3
Pourquoi l'opérateur flèche (->) en C existe-t-il?
L' .opérateur point ( ) est utilisé pour accéder à un membre d'une structure, tandis que l'opérateur flèche ( ->) dans C est utilisé pour accéder à un membre d'une structure qui est référencé par le pointeur en question. Le pointeur lui-même n'a pas de membres accessibles avec l'opérateur point …
264 c  pointers  dereference 

14
Comment créer un tableau de chaînes en C?
J'essaie de créer un tableau de chaînes en C. Si j'utilise ce code: char (*a[2])[14]; a[0]="blah"; a[1]="hmm"; gcc me donne "avertissement: affectation d'un type de pointeur incompatible". Quelle est la bonne façon de procéder? edit: Je suis curieux de savoir pourquoi cela devrait donner un avertissement au compilateur car si …
263 c  arrays  string 

10
Plafond rapide d'une division entière en C / C ++
Étant donné les valeurs entières xet y, C et C ++ renvoient tous les deux comme quotient q = x/yle plancher de l'équivalent en virgule flottante. Je suis intéressé par une méthode de retour du plafond à la place. Par exemple, ceil(10/5)=2et ceil(11/5)=3. L'approche évidente implique quelque chose comme: q …
262 c++  c  algorithm  math 


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.