Ver Mensaje Individual
  #4 (permalink)  
Antiguo 02/12/2014, 00:19
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: arreglos en c

Necesitas un buen manual de C. Busca en la biblioteca de tu universidad, en amazon o donde sea, pero consigue un buen manual. Es muy importante tener una buena base para entender lo que estás haciendo.

En C++ existen clases y estructuras, en C únicamente estructuras, pero no son como las estructuras en C++, las de C son mucho más simples ya que no entienden ni de herencia ni de funciones miembro.

C++ te permite sobrecargar un amplísimo abanico de funciones, entre ellas "new" y "delete". Esto te permite usarlas para crear e inicializar cualquier tipo de objeto (y si no las sobrecargas tú ya se encarga el compilador de crear una versión a medida para clase). Sin embargo en C todo esa responsabilidad recae en el programador.

Un arreglo vacío no es más que un puntero (del tipo que te de la gana) que no apunta a nada o no tiene información de interés:

Código C:
Ver original
  1. int* ptr = 0;
  2. struct CAlumnosSeleccion* ptr2 = 0;

Para rellenar un arreglo primero hay que hacer que el arreglo apunte a un elemento válido, esto lo puedes conseguir de dos formas: reservando memoria dinámica o usando la pila:

Código C:
Ver original
  1. // Asignación por reserva dinámica de memoria
  2. int* ptr = (int*)malloc( 20 * sizeof(int) );
  3.  
  4. // Asignación por referencia
  5. struct CAlumnosSeleccion unaEstructura;
  6. struct CAlumnosSeleccion*ptr2 = &unaEstructura;

En el primer caso no hay que olvidar llamar a "free" cuando la memoria reservada ya no sea necesaria. Si no se hace se crean lagunas de memoria. En el segundo caso no hay que hacer, bajo ningún concepto, una llamada a "free". De hacer la llamada lo más seguro es que el programa genere un error.