agrego practicas

This commit is contained in:
2026-10-31 11:14:30 -03:00
parent 392cf493d1
commit f4f56db493
50 changed files with 1899 additions and 0 deletions
+69
View File
@@ -0,0 +1,69 @@
/*
* EJERCICIO DE LENGUAJE C: STRUCTS Y PUNTEROS
*
* 1. Define una struct llamada Coordenada que contenga dos campos enteros: x e y.
* 2. Implementa una función constructora llamada Coordenada* crear_coordenada(int x, int y) que:
* - Reserve memoria dinámicamente utilizando malloc para una nueva estructura Coordenada.
* - Verifique si la reserva de memoria fue exitosa.
* - Inicialice sus campos x e y con los valores pasados como parámetros.
* - Devuelva el puntero a la estructura creada.
* 3. En la función main:
* - Utiliza la función constructora para crear una coordenada.
* - Muestra por pantalla los valores iniciales utilizando el operador flecha (->).
* - Modifica los valores de los campos de la estructura utilizando también el operador flecha (->).
* - Muestra los nuevos valores por pantalla.
* - Libera la memoria reservada dinámicamente utilizando free para evitar pérdidas de memoria.
*/
#include <stdio.h>
#include <stdlib.h>
typedef struct{
int x;
int y;
}Coordenada;
Coordenada* crear_coordenada(int x, int y);
void modificar_coordenada(Coordenada**, int x, int y);
void imprimir_coordenada(Coordenada**);
int main(void){
Coordenada* cord = crear_coordenada(10, 20);
imprimir_coordenada(&cord);
modificar_coordenada(&cord, 30, 40);
imprimir_coordenada(&cord);
free(cord);
return 0;
}
Coordenada* crear_coordenada(int x, int y){
Coordenada* new_cord = malloc(sizeof(Coordenada));
if(new_cord == NULL){
perror("No se pudo crear la coordenada\n");
exit(1);
}
new_cord->x = x;
new_cord->y = y;
return new_cord;
}
void modificar_coordenada(Coordenada** cord_address, int x, int y){
if((*cord_address) == NULL){
perror("No se ha proporcionado una coordenada para modificar\n");
exit(1);
}
(*cord_address)->x = x;
(*cord_address)->y = y;
}
void imprimir_coordenada(Coordenada** a){
printf("Coordenada(%d, %d);\n", (*a)->x, (*a)->y);
}