Programa en C - Liberar memoria - un poco de ayuda
Publicado por Arii (6 intervenciones) el 01/08/2020 01:20:34
Buenas tardes a todos. Me dijo a ustedes esta tarde para pedir su asistencia en una duda que tengo con un programa en C. Mi objetivo diseñar un código que sea capaz de buscar cuantas veces se repite un carácter en una determinada cadena de caracteres utilizando asignación dinámica.
No encontré una manera directa de hacerlo, por lo que empecé con algo simple:
Este código me devuelve lo que busco, salvo la asignación dinámica. No entiendo muy bien los punteros asi que no estoy segura de como se maneja la memoria, se que la función Int almacena una cantidad determinada por el siguiente valor Cad 20. Esto me hace pensar en una forma de liberar dicha memoria al final.
¿Se puede adaptar este código para quie usé la asignación dinámica de memoria de modo que libere la memoria al final?. Agradezco su apoyo, ya que me encuentro estancada. :)
No encontré una manera directa de hacerlo, por lo que empecé con algo simple:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <string.h>
int main(){
int longitud;
char cad[20];
char let = 'c';
int i, j=0;
printf("Ingrese su cadena de hasta 20 caracteres:\n ");
scanf("%s", cad);
longitud = strlen(cad);
for(i=0;i<longitud;i++){
if(cad[i]==let){
j++;
}
}
printf("La letra %c aparece %i veces\n",let,j);
return 0;
}
Este código me devuelve lo que busco, salvo la asignación dinámica. No entiendo muy bien los punteros asi que no estoy segura de como se maneja la memoria, se que la función Int almacena una cantidad determinada por el siguiente valor Cad 20. Esto me hace pensar en una forma de liberar dicha memoria al final.
¿Se puede adaptar este código para quie usé la asignación dinámica de memoria de modo que libere la memoria al final?. Agradezco su apoyo, ya que me encuentro estancada. :)
Valora esta pregunta


0