Código de C/Visual C - TRABAJO_MEMORIA

Imágen de perfil

TRABAJO_MEMORIAgráfica de visualizaciones


C/Visual C

Publicado el 24 de Agosto del 2022 por Hilario (122 códigos)
333 visualizaciones desde el 24 de Agosto del 2022

***Gaudeamus igitur iuvenes dum sumus***
---------------------------------------------
Hilario Iglesias Martínez
-----------------------------------
Si no se desea utilizar make, para su compilación,
poner bajo el mismo directorio Variables.h, y main.c
y compilar con el comando, para máxima depuración:

gcc -Wall -Wextra -Werror main.c -o Trabajo_Memoria
--o depuración normal--
gcc main.c -o Trabajo_Memoria

El programa fue realizado en plataforma
LINUX Ubuntu 20.04.4 LTS.
Bajo el standard ANSI C.-C-11
Para ejecutar bajo consola de linux.


Este programa "memoria.c", utiliza la función de llamada "malloc()",que tiene como finalidad la asignación dinámica de memoria.
Vuelca sobre consola de LINUX la parte o buffer, de memoria seleccionada.
El programa muestra un volcado de memoria asignada dinamicamente
por "malloc()", con este formato:
/*****
0x55923d61d747 [Desplazamiento] : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x55923d61d756 [Desplazamiento] : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x55923d61d765 [Desplazamiento] : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x55923d61d774 [Desplazamiento] : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

/****
Luego pregunta que se desea colocar en cualquiera de esas direcciones. Como respuest vuelca la frase elegida.
/*****
0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................pcIa
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................pcIa
00 11 04 00 00 00 00 00 00 46 52 41 53 45 0A 34 | .........FRASE.4pcIa
62 35 36 63 37 34 37 20 0A 00 00 00 00 00 00 00 | b56c747 ........pcIa
/*****
Se debe de tener en cuenta que si se elige una dirección fuera del rango seleccionado por "malloc()", el programa nos devolverá el típico error
de "Violación de segmento (`core' generado)"



Requerimientos

El programa fue realizado en plataforma
LINUX Ubuntu 20.04.4 LTS.
Bajo el standard ANSI C.-C-11
Para ejecutar bajo consola de linux.

V-0

Publicado el 24 de Agosto del 2022gráfica de visualizaciones de la versión: V-0
334 visualizaciones desde el 24 de Agosto del 2022
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/*
Variables.h
*/
 
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
char Codigo_ascii[17];
int i;
char valor;
unsigned char letra;
unsigned char *puntero;
 
**********************************************************************************
 
 
/*
memoria.c
*/
#include "Variables.h"
int main()
{
 
 
	printf("\n");
    /*
    La llamada "malloc()", tiene como finalidad
    la asignación dinámica de memoria.
    */
    puntero = (unsigned char *) malloc(256);
    printf("%p puntero:  ",puntero );
    for ( i = 0; i < 256; i++)
    {
    	letra=*puntero;
    	printf("%02x ",letra );
    	puntero++;
    	if (!(i%15))
    	{
 
    		 if (i!=256)
                printf("\n");
    		  printf("%p [Desplazamiento] : ", puntero);
    	}
 
    }
    printf("\n");
 
 
printf("Seleccione una de las direcciones de arriba a cambiar en HEX:\n");
scanf("%p%*c",&puntero);
printf("Introduzca el nuevo valor, o frase en esa posición:\n");
scanf("%hhx",&valor);
*puntero=(unsigned char)valor;
printf("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n" );
 
 
printf("\n");
 
           for (i = 0; i < 288; ++i) {
        printf("%02X ", ((unsigned char*)puntero)[i]);
        if (((unsigned char*)puntero)[i] >= ' ' && ((unsigned char*)puntero)[i] <= '~')
         {
            Codigo_ascii[i % 16] = ((unsigned char*)puntero)[i];
        } else {
            Codigo_ascii[i % 16] = '.';
        }
        if ((i+1) % 8 == 0 || i+1==288) {
            printf(" ");
            if ((i+1) % 16 == 0) {
                printf(" |  %s \n", Codigo_ascii);
}}}
printf("\n" );
 
}



Comentarios sobre la versión: V-0 (0)


No hay comentarios
 

Comentar la versión: V-0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s7269