Lunes 23 de Diciembre de 2024, 12:44
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++
»
Visual C++
(Moderador:
Eternal Idol
) »
Creando Un Array De Estructuras
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Creando Un Array De Estructuras (Leído 2693 veces)
Geo
Miembro de PLATA
Mensajes: 1011
Nacionalidad:
Creando Un Array De Estructuras
«
en:
Jueves 25 de Agosto de 2005, 00:01 »
0
Qué tal, me gustaría saber si hay alguna forma de lograr compilar el siguiente código (o similar):
Código: Text
struct Estructura {
int a;
int b;
};
Estructura newEstructura(int, int);
int main() {
Estructura arrayDeEstructuras = {
newEstructura(0, 1),
newEstructura(1, 1)
};
return 0;
}
Estructura newEstructura(int _a, int _b) {
Estructura estructura = {_a, _b};
return estructura;
}
Resulta que el compilador de VC++ (versión 6) me da error al tratar de crear arrayDeEstructuras usando la función newEstructura (por supuesto, puedo crearlo agregando cada campo en lugar de usar la función), sin embargo, este mismo código lo he compilado con MinGW (con Dev-C++) sin problemas, ¿alguien sabe si es posible copilar dicho código desactivando (o activando) alguna opción del compilador? ¿O simplemente no se puede?
Gracias de antemano
.
Saludos,
José Jorge (Geo).
Tweet
La imaginación es el límite.
Hardware & Software
|
Mexchip
Diodo
Moderador
Mensajes: 658
Re: Creando Un Array De Estructuras
«
Respuesta #1 en:
Jueves 25 de Agosto de 2005, 09:44 »
0
Hola
Creo que el error esta cuando declaras el array, se te ha olvidado ponerle el numero de elementos de este, si quieres hacerlo estatico, o un puntero y luego reservar memoria con malloc, si lo haces dinamico.
Solo cambie eso en tu codigo y ya compila bien (en visual studio.net aunque deberia valer tambien para 6.0)
Código: Text
struct Estructura {
int a;
int b;
};
Estructura newEstructura(int, int);
int main() {
Estructura arrayDeEstructuras[2] = { // <---- AQUI ESTABA EL ERROR
newEstructura(0, 1),
newEstructura(1, 1)
};
return 0;
}
Estructura newEstructura(int _a, int _b) {
Estructura estructura = {_a, _b};
return estructura;
}
Espero que te sirva
salu2
http]
Empty your memory,
with a free()...
like a pointer!
If you cast a pointer to a integer,
it becomes the integer,
if you cast a pointer to a struct,
it becomes the struct...
The pointer can crash...,
and can Overflow...
Be a pointer my friend...
Geo
Miembro de PLATA
Mensajes: 1011
Nacionalidad:
Re: Creando Un Array De Estructuras
«
Respuesta #2 en:
Martes 30 de Agosto de 2005, 05:51 »
0
gracias por el comentario, voy a probar
. Como dije, mi duda es porque en MinGW pude compilarlo sin problemas
. Luego comento qué tal
.
Saludos,
José Jorge (Geo).
La imaginación es el límite.
Hardware & Software
|
Mexchip
Geo
Miembro de PLATA
Mensajes: 1011
Nacionalidad:
Re: Creando Un Array De Estructuras
«
Respuesta #3 en:
Jueves 8 de Septiembre de 2005, 02:42 »
0
Pues nop, no he podido compilar, me sale un error indicando que no es posible "realizar una conversión de ESTRUCTURA a int" :?.
Probé tanto con VC++ 6 como con VC++ .NET (2002, ¿qué versión usaste?).
Saludos,
José Jorge (Geo).
La imaginación es el límite.
Hardware & Software
|
Mexchip
Amilius
Miembro HIPER activo
Mensajes: 665
Re: Creando Un Array De Estructuras
«
Respuesta #4 en:
Jueves 8 de Septiembre de 2005, 05:47 »
0
Ojo con C++ por que aunque "compile" no implica que el código esté bien. Y si compila bien en el MinGW puede ser por un relajamiento en las restricciones de compilación.
El error: "no es posible realizar una conversión de ESTRUCTURA a int" es algo que definitivamente esperaría por que tal cual se está asignando a un elemento de ese arreglo y definitivamente el compilador no debería suponer que uno quiere hacer otra cosa al indicar ese código. Y como no va a hacer lo que quisiéramos que hiciera sino lo que escribimos que hiciera...
Diodo
Moderador
Mensajes: 658
Re: Creando Un Array De Estructuras
«
Respuesta #5 en:
Jueves 8 de Septiembre de 2005, 08:19 »
0
Hola
Lo compile con Visual Studio.net y ahora he probado con DevC++ y en ninguno de los 2 da errores.Y ni si quiera warnings, ni errores de ejecucion
Asi que ....... el problema no es el codigo.Haz un copy paste del que te puse yo a ver q tal ......
salu2
http]
Empty your memory,
with a free()...
like a pointer!
If you cast a pointer to a integer,
it becomes the integer,
if you cast a pointer to a struct,
it becomes the struct...
The pointer can crash...,
and can Overflow...
Be a pointer my friend...
Geo
Miembro de PLATA
Mensajes: 1011
Nacionalidad:
Re: Creando Un Array De Estructuras
«
Respuesta #6 en:
Domingo 25 de Septiembre de 2005, 02:30 »
0
Gracias por los comentarios
. Disculpen no poder responder pronto, pero no tengo internet
Diodo: efectivamente, compilé sin problemas en Dev-C++, de hecho, de ello surgió mi duda puesto que con MinGW no tuve ningún problema, pero al probar con VC++ si. Creo que quizá se debe a alguna opción del compilador habilitada (o deshabilitada) por defecto en las versiones más recientes, yo usé VC++ .net 2002, ¿cuál tienes?
Amilius: gracias por el recordatorio
.
Saludos,
José Jorge (Geo).
La imaginación es el límite.
Hardware & Software
|
Mexchip
Diodo
Moderador
Mensajes: 658
Re: Creando Un Array De Estructuras
«
Respuesta #7 en:
Domingo 25 de Septiembre de 2005, 09:13 »
0
Hola
Yo tengo Visual Studio.net 2003
Ya seria raro que en el 2002 no funcionara.Si puedo lo probare con el 6.0 a ver q tal
salu2
http]
Empty your memory,
with a free()...
like a pointer!
If you cast a pointer to a integer,
it becomes the integer,
if you cast a pointer to a struct,
it becomes the struct...
The pointer can crash...,
and can Overflow...
Be a pointer my friend...
Amilius
Miembro HIPER activo
Mensajes: 665
Re: Creando Un Array De Estructuras
«
Respuesta #8 en:
Domingo 25 de Septiembre de 2005, 20:13 »
0
Pues, como suponía, con el VC++ 6 no compila ni uno ni otro.
Geo
Miembro de PLATA
Mensajes: 1011
Nacionalidad:
Re: Creando Un Array De Estructuras
«
Respuesta #9 en:
Domingo 2 de Octubre de 2005, 03:21 »
0
Cita de: "Amilius"
Pues, como suponía, con el VC++ 6 no compila ni uno ni otro.
Jeje, ahora puedo decir que eso es, hay alguna opción diferente entre las versiones
.
¿Y te sale ese error que mencioné?
GRACIAS por todo, ahora me faltará encontrar qué es lo que hace que en la versión que probó Diodo si compile.
Saludos,
José Jorge (Geo).
La imaginación es el límite.
Hardware & Software
|
Mexchip
Amilius
Miembro HIPER activo
Mensajes: 665
Re: Creando Un Array De Estructuras
«
Respuesta #10 en:
Domingo 2 de Octubre de 2005, 15:16 »
0
...textualmente sale:
error C2440: 'initializing' : cannot convert from 'struct Estructura' to 'int'
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
»
Visual C++
(Moderador:
Eternal Idol
) »
Creando Un Array De Estructuras