c

Establecer variable a NULL después de free

En mi empresa hay una regla de codificación que dice, después de liberar cualquier memoria, restablecer la variable a NULL. P ... ado en tales casos, voy a discutirlo con el "equipo de calidad" para eliminar esta regla de codificación. Por favor, consejo.

Esta función C siempre debe devolver false, pero no

Me topé con una pregunta interesante en un foro hace mucho tiempo y quiero saber la respuesta. Considere la siguiente funció ... s eso? ¿Este código tiene algún tipo de comportamiento indefinido? Nota: Lo compilé con gcc (Ubuntu 4.9.2-10ubuntu13) 4.9.2.

¿Por qué " sizeof (a? true: false) " dar una salida de cuatro bytes?

Tengo un pequeño fragmento de código sobre el operador sizeof con el operador ternario: #include <stdio.h> #include & ... boolean type y sizeof bool type es 1 byte en C. Entonces ¿por qué sizeof(a ? true : false) da una salida de cuatro bytes?

Algoritmo más eficiente para la Inversión de Bits (de MSB - >LSB a LSB->MSB) en C [cerrado]

¿Cuál es el mejor algoritmo para lograr lo siguiente: 0010 0000 => 0000 0100 La conversión es de MSB->LSB a LSB->MSB. Todos los bits deben invertirse; es decir, esto es no intercambio de endianidad.

¿Por qué malloc + memset es más lento que calloc?

Se sabe que calloc es diferente de malloc en que inicializa la memoria asignada. Con calloc, la memoria se pone a cero. Con m ... duce el mismo resultado. Mi pregunta es: ¿por Qué es malloc+memset mucho más lenta que calloc? ¿Cómo puede calloc hacer eso?

¿Qué significan los paréntesis alrededor de un nombre de función?

En uno de mis archivos fuente de proyecto, encontré esta definición de función C: int (foo) (int *bar) { return foo (ba ... un asterisco junto a foo, por lo que no es un puntero de función. ¿O lo es? ¿Qué está pasando aquí con la llamada recursiva?

¿Qué es el array decaying?

¿Qué es la descomposición de una matriz? ¿Hay alguna relación con los punteros de matriz?

¿Por qué el desbordamiento de enteros en x86 con GCC causa un bucle infinito?

El siguiente código entra en un bucle infinito en GCC: #include <iostream> using namespace std; int main(){ int i ... movq %rbx, %rdi addl $1, %r12d call _ZNSo3putEc movq %rax, %rdi call _ZNSo5flushEv cmpl $3, %r12d jne .L5

C # define macro para la impresión de depuración

Tratando de crear una macro que se pueda usar para imprimir mensajes de depuración cuando se define DEBUG, como el siguiente ... ódigo: #define DEBUG 1 #define debug_print(args ...) if (DEBUG) fprintf(stderr, args) ¿Cómo se logra esto con una macro?

¿Por qué tienes que enlazar la biblioteca de matemáticas en C?

Si incluyo <stdlib.h> o <stdio.h> en un programa C, no tengo que vincularlos al compilar, pero sí tengo que vincu ... l es la razón de esto? ¿Por qué tengo que vincular explícitamente la biblioteca de matemáticas pero no las otras bibliotecas?

Extrañas definiciones de macros VERDADERAS y FALSAS

He visto las siguientes definiciones de macro en un libro de codificación. #define TRUE '/'/'/' #define FALSE '-'-'-' No había explicación allí. Por favor explíqueme cómo funcionarán como TRUE y FALSE.

Funciones de llamada desde C

Estoy tratando de crear un objeto estático escrito en la interfaz Go to con un programa en C (digamos, un módulo del núcleo o ... post ¿alguien tiene experiencia con esto? En resumen, estoy tratando de crear un módulo PAM escrito completamente en Go.

¿Cómo defino y uso una ENUMERACIÓN en Objective-C?

Declaré una enumeración en mi archivo de implementación como se muestra a continuación, y declaré una variable de ese tipo en ... er { PlayerState thePlayerState; En algún método en .archivo m: -(void)doSomethin{ thePlayerState = PLAYER_OFF; }

¿Dónde está la función itoa en Linux?

itoa() es una función muy útil para convertir un número en una cadena. Linux no parece tener itoa(), ¿hay una función equivalente o tengo que usar sprintf(str, "%d", num)?

¿Por qué los punteros de función y los punteros de datos son incompatibles en C/C++?

He leído que convertir un puntero de función en un puntero de datos y viceversa funciona en la mayoría de las plataformas, pe ... r qué es este el caso? ¿No deberían ambas ser simplemente direcciones en la memoria principal y por lo tanto ser compatibles?

Uso del operador de flecha ( - > ) en C

Actualmente estoy aprendiendo C leyendo un buen libro para principiantes llamado "Teach Yourself C in 21 Days" (ya he aprendi ... ro para punteros en lugar de miembros). Pero no estoy del todo seguro. ¿Podría darme una explicación y un código? la muestra?

¿Qué es el operador>= en C?

Dado por un colega como un rompecabezas, no puedo averiguar cómo este programa C realmente compila y se ejecuta. ¿Qué es este ... int a[2]={ 10, 1 }; while( a[ 0xFULL?'\0':-1:>>>=a<:!!0X.1P1 ] ) printf("?"); return 0; }

¿Sintaxis válida, pero sin valor en switch-case?

A través de un pequeño error, accidentalmente encontré esta construcción: int main(void) { char foo = 'c'; switch(f ... anzable, pero esto parece inútil. ¿Debería un compilador marcar esto como código inalcanzable? ¿Esto tiene algún propósito?

strdup () - ¿qué hace en C?

¿Cuál es el propósito de la función strdup() en C?

Cómo imprimir f "unsigned long" en C?

Nunca puedo entender cómo imprimir unsigned long tipo de datos en C. Supongamos que unsigned_foo es un unsigned long, entonc ... rintf("%dl\n", unsigned_foo) Y todos ellos de impresión algún tipo de -123123123 número en lugar de unsigned long que tengo.