C/Visual C - Funcion que aloque memoria

 
Vista:
sin imagen de perfil

Funcion que aloque memoria

Publicado por Diego (150 intervenciones) el 29/05/2016 00:23:51
Buenas tardes, quisiera realizar este ejercicio, pero ya me maree y estoy trabado

enunciado:

Escriba una función que reciba una variable de tipo puntero a entero por referencia y aloque
la memoria necesaria para alojar un entero.

fin enunciado;

mi idea es hacer una funcion separada del main con su respectiva cabecera .h para compilar todo junto

Esto es lo que tengo hasta el momento:
Main:

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
#include <stdlib.h>
#include "alocar_entero.h"
int main (int argc, char *argv[]){
	int *ptr_int = NULL;
	alocar(&ptr_int);
	iniciar(&ptr_int);
	printf("\nnumero direccion: %p   Con el valor %d\n", ptr_int, *ptr_int);
	return 0;
}

alocar_entero.h:

1
2
void alocar(int **);
void iniciar(int **);

alocar_entro.c:
1
2
3
4
5
6
7
8
9
#include <stdlib.h>
void alocar(int **ptr_int)
{
	**ptr_int = (int *) malloc(1 * sizeof(int));
}
void iniciar(int **ptr_int)
{
	**ptr_int = 123;
}

estos son los warning que me estan marcando la terminal:
alocar_entero.c:4:12: warning: assignment makes integer from pointer without a cast [enabled by default]
**ptr_int = (int *) malloc(1 * sizeof(int));
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Funcion que aloque memoria

Publicado por Chema (234 intervenciones) el 29/05/2016 23:23:16
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
#include <stdio.h>
/*
*enunciado:
*
*Escriba una función que reciba una variable de tipo puntero a entero por referencia y aloque
*la memoria necesaria para alojar un entero.
*
*fin enunciado;
*/
 
/*
*Solución al ejerccio descrito que consite en ALOCAR, o sea, volver loca la
memoria  para alojar un entero.
*Autor Chema.
*/
 
 
typedef union VariableAlocadora{
	char *ch;
	int *in;
	long *lon;
	float *flo;
	void *v;
 
}VariableAlocadora;
 
typedef  VariableAlocadora VarLoca;
 
/*
*alocar: funcion que vuelve loca una variable.
* y aloca la memoria.
*/
void *Alocar(void *ptr){
	return ptr;
}
 
int main(void){
	VarLoca Sv;
	int a = 0x06C6F48;
	long b = 0x02D2061;
	int c = 0x0293A;
 
	Sv.v = Alocar(&a);
	printf("%s",Sv.ch);
 
	Sv.v = Alocar(&b);
	printf("%s",Sv.ch);
 
	Sv.v = Alocar(&c);
	printf("%s",Sv.ch);
 
 
	return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Funcion que aloque memoria

Publicado por Diego (150 intervenciones) el 30/05/2016 00:13:23
Jjaja, gracias, por la respuesta. Es una respuesta acertada. Y el warning que aparecia en mi programa se soluciono quitando un asterisco de más que tenía esa asignacion.
AHora tengo un problema en otro ejercicio que plantearé pronto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar