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.

8
Pourquoi GDB saute de manière imprévisible entre les lignes et imprime les variables sous la forme «<valeur optimisée>»?
Quelqu'un peut-il expliquer ce comportement de gdb? 900 memset(&amp;new_ckpt_info,'\0',sizeof(CKPT_INFO)); (gdb) **903 prev_offset = cp_node-&gt;offset;** (gdb) **905 m_CPND_CKPTINFO_READ(ckpt_info,(char *)cb-&gt;shm_addr.ckpt_addr+sizeof(CKPT_** HDR),i_offset); (gdb) **903 prev_offset = cp_node-&gt;offset;** (gdb) **905 m_CPND_CKPTINFO_READ(ckpt_info,(char *)cb-&gt;shm_addr.ckpt_addr+sizeof(CKPT_ HDR),i_offset);** (gdb) **908 bitmap_offset = client_hdl/32;** (gdb) **910 bitmap_value = cpnd_client_bitmap_set(client_hdl%32);** (gdb) **908 bitmap_offset = client_hdl/32;** (gdb) **910 bitmap_value = cpnd_client_bitmap_set(client_hdl%32);** (gdb) …

4
Comment Photoshop mélange-t-il deux images ensemble? [fermé]
Fermé. Cette question ne respecte pas les directives de Stack Overflow . Il n'accepte pas les réponses actuellement. Vous souhaitez améliorer cette question? Mettez à jour la question pour qu'elle soit pertinente pour Stack Overflow. Fermé l'année dernière . Améliorez cette question Quelqu'un peut-il expliquer comment Photoshop mélange deux images …

3
Pourquoi convertir la valeur de retour de free en null?
Je lis un livre ( Programmation avec des fils POSIX de Butenhof, 1997) qui utilise C, et je suis tombé sur la ligne suivante: (void)free(data); Ici, dataest juste un pointeur vers une structure allouée, data = malloc(sizeof(my_struct_t)); Pourquoi le résultat freeest-il lancé void? D'après ma compréhension de C, cela ne …
82 c  casting  free  void  legacy-code 




4
Quel est le besoin d'accolades vides '{}' à la fin du tableau de structures?
J'ai frappé du code c dans le noyau Linux: static struct ctl_table ip_ct_sysctl_table[] = { { .procname = "ip_conntrack_max", .maxlen = sizeof(int), .mode = 0644, .proc_handler = proc_dointvec, }, // ... { .procname = "ip_conntrack_log_invalid", .maxlen = sizeof(unsigned int), .mode = 0644, .proc_handler = proc_dointvec_minmax, .extra1 = &amp;log_invalid_proto_min, .extra2 = …

4
Que fait ((void (*) ()) buf) (); signifier?
Je suis en train de résoudre un défi d'exploitation binaire sur picoCTF et suis tombé sur ce morceau de code: ((void (*)())buf)(); où bufest un tableau de caractères. J'ai résolu le défi, mais je n'arrive pas à comprendre ce qu'il fait exactement. J'ai regardé ce fil mais je n'ai pas …




2
Pourquoi les adresses d'argc et d'argv sont-elles séparées de 12 octets?
J'ai exécuté le programme suivant sur mon ordinateur (Intel 64 bits exécutant Linux). #include &lt;stdio.h&gt; void test(int argc, char **argv) { printf("[test] Argc Pointer: %p\n", &amp;argc); printf("[test] Argv Pointer: %p\n", &amp;argv); } int main(int argc, char **argv) { printf("Argc Pointer: %p\n", &amp;argc); printf("Argv Pointer: %p\n", &amp;argv); printf("Size of &amp;argc: %lu\n", …


6
Pourquoi cette réclamation de déréférencement de pointeur punencé par type de déréférencement est-elle spécifique au compilateur?
J'ai lu divers articles sur Stack Overflow RE: l'erreur de pointeur punencé par déréférencement. Ma compréhension est que l'erreur est essentiellement l'avertissement du compilateur du danger d'accéder à un objet via un pointeur d'un type différent (bien qu'une exception semble être faite pour char*), ce qui est un avertissement compréhensible …
38 c  pointers  casting 


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.