elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  consulta sobre Struct Array[] en C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: consulta sobre Struct Array[] en C++  (Leído 5,320 veces)
xkiz ™


Desconectado Desconectado

Mensajes: 1.252


Ver Perfil WWW
consulta sobre Struct Array[] en C++
« en: 29 Junio 2011, 04:32 am »

estoy haciendo algo en VC++ para lo cual creo que me facilitaria un poko utilizar struct para ordenar los datos que posteriormente utilizaria para cargar en un ListView o hacer alguna busqueda X, pero como recien estoy empezando a programar en (VC++ 6.0) no se bien como hacer un Struct array[] sin valor de Array. de seguro que no sera asi o habra alguna forma de hacerlo, pero lo googlie y todos los ej. que encontre el Array tenia un valor asignado y yo en mi caso no se cual va a ser el valor del Array. expongo un ej

Código
  1. #include <windows.h>
  2. #include <stdio.h>
  3.  
  4. struct people{
  5. LPCTSTR name;
  6. LPCTSTR LastName;
  7. };
  8. char temp[50];
  9. int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
  10. people Persons[];
  11. // people * Persons; // <------- CRASH
  12. Persons[0].name = "Aaron";
  13. Persons[0].LastName = "xkiz";
  14.  
  15. Persons[1].name = "John";
  16. Persons[1].LastName = "Doe";
  17.  
  18. Persons[2].name = "John";
  19. Persons[2].LastName = "Johnson";
  20.  
  21. for(int x=0; x<sizeof(Persons);x++){
  22. sprintf(temp, "Person # %i: %s %s",x, Persons[x].name, Persons[x].LastName);
  23. OutputDebugString((LPCTSTR)temp);
  24. }
  25. return 0;
  26. }
  27.  

lo cual devuelve el error:

Citar
....cpp(13) : error C2133: 'Persons' : unknown size
....cpp(23) : error C2070: illegal sizeof operand

y la verdad no se como resolver eso, es posible hacer un array struct [] ???


« Última modificación: 29 Junio 2011, 04:38 am por xkiz ™ » En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: consulta sobre Struct Array[] en C++
« Respuesta #1 en: 29 Junio 2011, 08:33 am »

Necesitas un arreglo dinámico de estructuras. Algo como esto:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct people
  5. {
  6.    /* Tú cambias los campos, solo es un ejemplo */
  7.    int x;
  8.    int y;
  9. };
  10.  
  11. int main(void)
  12. {
  13.    unsigned n;
  14.    printf("Número de personas : ");
  15.    fflush(stdout);
  16.    scanf("%u", &n);
  17.  
  18.    struct people *personas = malloc(sizeof(struct people) * n);
  19.  
  20.    unsigned i;
  21.  
  22.    for(i = 0; i < n; i++)
  23.    {
  24.        printf("personas[%u].x = ", i);
  25.        scanf("%d", &personas[i].x);
  26.        printf("personas[%u].y = ", i);
  27.        scanf("%d", &personas[i].y);
  28.    }
  29.  
  30.    free(personas);
  31.  
  32.    return 0;
  33. }
  34.  

Acomoda los campos a tu conveniencia, nota que hay que liberar la memoria ocupada con free().


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
xkiz ™


Desconectado Desconectado

Mensajes: 1.252


Ver Perfil WWW
Re: consulta sobre Struct Array[] en C++
« Respuesta #2 en: 29 Junio 2011, 20:29 pm »

gracias por responder.
me surgio un problema con ese code, me tira error:

Código
  1. struct people *personas = malloc(sizeof(struct people) * n);
  2. //error C2440: 'initializing' : cannot convert from 'void *' to 'struct people *' Conversion from 'void*' to pointer to non-'void' requires an explicit cast
  3.  

otra cosa, yo arrme ese ej para no poner el choclaso de code en lo que estoy trabajando y hacerlo mas simple, pero la onda es que, no puedo asignar un valor al vector, el valor se incrementa dentro en un for.
si no tendria que hacer 2 for(), uno para obtener el valor del vector [n], y el 2º para asinar el valor al personas [n].y.

« Última modificación: 29 Junio 2011, 20:31 pm por xkiz ™ » En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: consulta sobre Struct Array[] en C++
« Respuesta #3 en: 29 Junio 2011, 20:31 pm »

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct people
  5. {
  6.    /* Tú cambias los campos, solo es un ejemplo */
  7.    int x;
  8.    int y;
  9. };
  10.  
  11. int main(void)
  12. {
  13.    unsigned n;
  14.    printf("Número de personas : ");
  15.    fflush(stdout);
  16.    scanf("%u", &n);
  17.  
  18.    struct people *personas = (struct people *)malloc(sizeof(struct people) * n);
  19.  
  20.    unsigned i;
  21.  
  22.    for(i = 0; i < n; i++)
  23.    {
  24.        printf("personas[%u].x = ", i);
  25.        scanf("%d", &personas[i].x);
  26.        printf("personas[%u].y = ", i);
  27.        scanf("%d", &personas[i].y);
  28.    }
  29.  
  30.    free(personas);
  31.  
  32.    return 0;
  33. }
  34.  
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
xkiz ™


Desconectado Desconectado

Mensajes: 1.252


Ver Perfil WWW
Re: consulta sobre Struct Array[] en C++
« Respuesta #4 en: 1 Julio 2011, 00:02 am »

uh disculpa, me olvide de darte las gracias.....
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Re: consulta sobre utilizacion SysLink y LITEM Struct (SOLUCIONADO)
Programación C/C++
xkiz ™ 4 2,517 Último mensaje 9 Julio 2011, 23:57 pm
por BlackZeroX
consulta sobre array
Programación C/C++
xkiz ™ 1 1,064 Último mensaje 23 Abril 2012, 03:03 am
por BlackZeroX
Duda sobre lista de un typedef struct
Programación C/C++
Ccomplica 1 1,255 Último mensaje 1 Noviembre 2013, 22:02 pm
por m@o_614
como ocultar un array o un dato de un struct
Programación C/C++
joshua_rock 1 1,204 Último mensaje 23 Noviembre 2014, 01:00 am
por engel lex
[C] Ordenar Array de STRUCT
Programación C/C++
n-utz 3 3,392 Último mensaje 24 Septiembre 2016, 19:08 pm
por n-utz
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines