Articles of memoria

¿Cómo funciona este progtwig?

#include int main() { float a = 1234.5f; printf(“%d\n”, a); return 0; } ¡Muestra un 0 ! ¿Cómo es eso posible? ¿Cuál es el razonamiento? He puesto deliberadamente un %d en la statement de printf para estudiar el comportamiento de printf .

Débiles beneficios de referencia

¿Puede alguien explicar los principales beneficios de diferentes tipos de referencias en C #? Referencias débiles Referencias suaves Referencias ficticias Referencias fuertes Tenemos una aplicación que consume mucha memoria y estamos tratando de determinar si se trata de un área en la que centrarnos.

C Gestión de memoria

Siempre escuché que en C tienes que ver realmente cómo administras la memoria. Y todavía estoy empezando a aprender C, pero hasta ahora, no he tenido que hacer ningún tipo de gestión de actividades relacionadas … Siempre imaginé tener que liberar variables y hacer todo tipo de cosas feas. Pero este no parece ser el […]

g ++ matriz de tamaño variable sin advertencia?

int a; cin >> a; int ints[a]; ¿Por qué esto no arroja ningún tipo de advertencia durante la comstackción? ¿Cómo puedo saber cuándo esta matriz está usando realmente el montón o la stack? g++ -std=c++11 -Wall *.cpp -o main

¿Qué sucede si bash acceder a la memoria más allá de una región malloc () ‘d?

He asignado una tirada de memoria con char* memoryChunk = malloc ( 80* sizeof(char) + 1); ¿Qué me impide escribir en la ubicación de la memoria más allá de 81 unidades? ¿Qué puedo hacer para prevenir eso? void testStage2(void) { char c_str1[20] = “hello”; char* ut_str1; char* ut_str2; printf(“Starting stage 2 tests\n”); strcat(c_str1, ” world”); […]

Uso de la asignación de memoria dinámica para matrices

¿Cómo se supone que use las asignaciones dinámicas de memoria para las matrices? Por ejemplo, aquí está la siguiente matriz en la que leo palabras individuales de un archivo .txt y las guardo palabra por palabra en la matriz: Código: char words[1000][15]; Aquí 1000 define el número de palabras que la matriz puede guardar y […]

Almacenamiento de tipo de datos literal de cadena C ++

void f() { char *c = “Hello World!” } Donde esta la cuerda almacenada? ¿Cuál es la propiedad de eso? Solo sé que es una constante, ¿qué más? ¿Puedo devolverlo desde el interior del cuerpo de la función?

Determinando el espacio de stack con Visual Studio

Estoy progtwigndo en C en Visual Studio 2005. Tengo un progtwig multiproceso, pero eso no es especialmente importante aquí. ¿Cómo puedo determinar (aproximadamente) cuánto espacio de stack usan mis hilos? La técnica que estaba planeando usar es establecer la memoria de la stack en un valor predeterminado, digamos 0xDEADBEEF, ejecutando el progtwig por un largo […]

Cómo determinar si el puntero devuelto está en la stack o en el montón

Tengo una architecture de complemento, donde llamo funciones en una biblioteca dinámica y me devuelven un char* que es la respuesta, se usa en una etapa posterior. Esta es la firma de una función de complemento: char* execute(ALLOCATION_BEHAVIOR* free_returned_value, unsigned int* length); donde ALLOCATION_BEHAVIOR debe ser: DO_NOT_FREE_ME , FREE_ME , DELETE_ME donde el complemento (en […]

¿Cuál es el segmento y el desplazamiento en el direccionamiento de memoria en modo real?

Estoy leyendo sobre direccionamiento de memoria. Leí sobre el offset del segmento y luego sobre el offset del descriptor. Sé cómo calcular las direcciones exactas en modo real. Todo esto está bien, pero no puedo entender qué es exactamente el desplazamiento. Dondequiera que leo: En modo real, los registros son solo de 16 bits, por […]