Sábado 14 de Diciembre de 2024, 13:39
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Variable tipo apuntador
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Variable tipo apuntador (Leído 1981 veces)
viktor479
Nuevo Miembro
Mensajes: 5
Variable tipo apuntador
«
en:
Miércoles 17 de Marzo de 2010, 03:13 »
0
Buen dia
En el taller de sistemas debemos hacer el siguiente ejercicio un programa que imprima los datos basicos de 5 automoviles (marca,modelo,color,cilindraje) usando una estructura,el programa tal cual ya lo programe pero ahora el tutor requiere que incluyamos variables tipo apuntador y como recien empiezo a programar estoy un poco confundido agradeceria mucho su orientacion.como hago la asignacion de estas varibales estuve leyendo y la sintaxis seria por ejemplo char *marca=[20]; pero no funcionan.
Muchas Gracias
Estoy programando en Turbo C++4.5.
Código: C++
//Ejercicio No.6 Estructura Automovil
//Programado por Victor Avila
# include <stdio.h>
# include <conio.h>
void
main
(
)
{
int
max
=
5
;
printf
(
"Digite los datos basicos de los automovilesn"
)
;
printf
(
"-------------------------------------------n"
)
;
printf
(
"Recuerde que el maximo de automoviles es de 5nn"
)
;
struct
automovil
{
char
marca
[
20
]
;
int
modelo
;
char
color
[
20
]
;
int
cilindraje
;
}
automovi
[
20
]
;
for
(
int
i
=
0
;
i
<=
max
;
i
++
)
{
printf
(
"Digite la Marca No. %d"
,i
)
;
scanf
(
"%s"
,
&
automovi
[
i
]
.
marca
)
;
printf
(
"Digite el modelo No. %d"
,i
)
;
scanf
(
"%d"
,
&
automovi
[
i
]
.
modelo
)
;
printf
(
"Digite el Color No. %d"
,i
)
;
scanf
(
"%s"
,
&
automovi
[
i
]
.
color
)
;
printf
(
"Digite el Cilindraje No. %d"
,i
)
;
scanf
(
"%d"
,
&
automovi
[
i
]
.
cilindraje
)
;
}
printf
(
"los datos alamacnedos en la estructura son n"
)
;
for
(
i
=
0
;
i
<=
max
;
i
++
)
{
printf
(
"n Marca: %s"
,automovi
[
i
]
.
marca
)
;
printf
(
"n Modelo: %d"
,automovi
[
i
]
.
modelo
)
;
printf
(
"n Color: %s"
,automovi
[
i
]
.
color
)
;
printf
(
"n Cilindraje: %d"
,automovi
[
i
]
.
cilindraje
)
;
printf
(
"n"
)
;
}
getch
(
)
;
}
Tweet
«
última modificación: Miércoles 17 de Marzo de 2010, 05:09 por viktor479
»
jormar arellano
Nuevo Miembro
Mensajes: 10
Nacionalidad:
Re: Variable tipo apuntador
«
Respuesta #1 en:
Miércoles 17 de Marzo de 2010, 03:59 »
0
A que te refieres exactamente? necesitas ser más preciso...
posman
Miembro MUY activo
Mensajes: 119
Re: Variable tipo apuntador
«
Respuesta #2 en:
Miércoles 17 de Marzo de 2010, 15:54 »
0
Si tienes este codigo
Código: Text
int mi_int;
mi_int = 123;
Para utilizar apuntadores tendrias que utilizar algo como esto
Código: Text
int *mi_int; //declaras como apuntador
mi_int = (int *)malloc(sizeof(int)); //reservas espacio suficiente para un entero
*mi_int = 123; //asignas el valor
En el ejemplo, reservas espacio para un solo entero. Si quieres reservar espacio para cadenas, tendrias que multiplicar el espacio necesario para un char (con sizeof(char)) y multiplicarlo por el numero de caracteres que tendria la cadena
jormar arellano
Nuevo Miembro
Mensajes: 10
Nacionalidad:
Re: Variable tipo apuntador
«
Respuesta #3 en:
Miércoles 17 de Marzo de 2010, 19:50 »
0
Es que ese es el problema, posman, no sabemos si esta utilizando memoria dinámica, o si necesecita modularizar su programa con funciones, o si necesita x cosa.
lo más probable es que necesite usar funciones para separar las acciones del programa principal. Te daré un ejemplo, teniendo en cuenta que puede ser enb vano, dada la poca especificación del problema:
Código: C++
#DEFINE MAX 5
...
/*
* Esta función toma como parametro la direccion de memoria de tu arreglo de "struct automovil"
* En principio, no necesitas pasarla como parametro, ya que tu arreglo lo declaras como global.
* Lo más correcto sería declararte tu arreglo dentro del main, y usarlo (mucho más ideal, con memoria dinamica
*/
void
leerDatos
(
struct
automovil
*
autos
)
{
int
i
;
for
(
i
=
0
;
i
<=
MAX
;
i
++
)
{
printf
(
"Digite la Marca No. %d"
,i
)
;
scanf
(
"%s"
,
&
(
autos
[
i
]
.
marca
)
)
;
...
}
}
...
void
printDatos
(
struct
automovil
*
autos
)
{
int
i
;
for
(
i
=
0
;
i
<=
MAX
;
i
++
)
{
printf
(
"n Marca: %s"
,autos
[
i
]
.
marca
)
;
...
}
}
...
viktor479
Nuevo Miembro
Mensajes: 5
Re: Variable tipo apuntador
«
Respuesta #4 en:
Jueves 25 de Marzo de 2010, 06:02 »
0
Muchas gracias por sus aportes tienen mucha razon no fui my claro
pero estuve trabajando en el codigo y sus consejos y pues ya logre avanzar.
este es el codigo.
Código: C++
#include<iostream.h>
#include<stdlib.h>
#include<conio.h>
struct
vehiculo
{
char
marca
[
20
]
;
int
modelo
;
char
color
[
20
]
;
char
placa
[
20
]
;
}
;
int
main
(
)
{
int
max
;
int
*
x
;
x
=
&
max
;
*
x
=
5
;
vehiculo
*
autos
=
new
vehiculo
[
6
]
;
gotoxy
(
25
,
2
)
;
cout
<<
" PARQUEADERO EL CAMPANARIO "
<<
"n"
;
gotoxy
(
25
,
3
)
;
cout
<<
"---------------------------"
<<
"n"
;
cout
<<
"ntCONTROL DE INGRESO DE VEHICULOS"
<<
"n"
;
for
(
int
i
=
1
;
i
<=
max
;
i
++
)
{
cout
<<
(
i
+
0
)
<<
" vehiculo.n"
;
cout
<<
"nDIGITE LA MARCA "
<<
i
<<
" : "
;
cin
>>
autos
[
i
]
.
marca
;
cout
<<
"DIGITE EL MODELO : "
;
cin
>>
autos
[
i
]
.
modelo
;
cout
<<
"DIGITE EL COLOR "
<<
i
<<
" : "
;
cin
>>
autos
[
i
]
.
color
;
cout
<<
"DIGITE EL PLACA "
<<
i
<<
" : "
;
cin
>>
autos
[
i
]
.
placa
;
cout
<<
"n"
;
}
clrscr
(
)
;
cout
<<
"LISTADO DE VEHICULOS REGISTRADOS "
<<
"n"
;
for
(
i
=
1
;
i
<=
max
;
i
++
)
{
cout
<<
endl
<<
(
i
+
0
)
<<
" vehiculo.n"
;
cout
<<
" MARCA : "
<<
autos
[
i
]
.
marca
<<
"n"
;
cout
<<
" MODELO : "
<<
autos
[
i
]
.
modelo
<<
"n"
;
cout
<<
" COLOR : "
<<
autos
[
i
]
.
color
<<
"n"
;
cout
<<
" PLACA : "
<<
autos
[
i
]
.
placa
<<
endl
<<
"nn"
;
}
getch
(
)
;
delete
[
]
autos
;
return
0
;
}
Ahora si por favor me pueden orientar como hago para que al imprimir los datos por pantalla despues el programa me pida ingresar un nuevo vehiculo y muestre por pantalla los seis vehiculos.
muchas gracias han sido de gran ayuda sus aportes.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Variable tipo apuntador