Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: seryioo en 8 Agosto 2015, 11:37 am



Título: Duda con los array C++
Publicado por: seryioo en 8 Agosto 2015, 11:37 am
Buenas, tengo varias dudas manejando arrays, sobre todo al llamarlos en las cabeceras de las funciones o al inicializarlos.
Además, no se cuándo debo usar un array abierto o definir su tamaño.

A continuación dejo parte de un ejercicio en el que me da error ( storage size of 'ar' isn't known|)

Código
  1. typedef int Tarray [];
  2.  
  3. void generarConjunto(Tarray ar);  //esta función genera los 100 primeros nºs de un conjunto y los mete en un array.
  4.                                        //Por lo que no se si debería haber definido la dimensión de Tarray como [100]
  5.  
  6.  
  7. //-----------------
  8.  
  9. int main(){
  10.    Tarray ar;  //¿Cuándo pongo los corchetes? En caso de tener que ponerlos,
  11.                   //¿debo definir su tamaño, o el tamaño viene dado al inicializar el tipo Tarray?
  12.                  //He probado a poner corchetes con y sin dimensión y me sale " declaration of 'ar' as multidimensional array must have bounds for all dimensions except the first"
  13.  
  14.    generarConjunto(ar);
  15.  
  16.    return 0;
  17. }
  18.  

Dejo el enunciado del ejercicio, por si os facilita algo:

12) Diseñar un programa que genere y muestre en la pantalla ordenados los 100 primeros
números de un conjunto M definido de la siguiente forma:
i. 1 pertenece a M.
ii. Si x pertenece a M, entonces 2*x+1 y 3*x+1 también pertenecen a M.
iii. Ningún otro número pertenece a M.
El programa deberá producir una salida por pantalla de la forma:
M = {1, 3, 4, 7, 9, 10, … }*/



Gracias. Siento ser tan repetido en el foro haciendo todo tipo de preguntas.


Título: Re: Duda con los array C++
Publicado por: Orubatosu en 8 Agosto 2015, 21:46 pm
Si conoces por adelantado el tamaño de un array ponlo al declararlo.

Si vas a inicializarlo en una función, en lugar de hacer que sea global define el array en el cuerpo del programa y pasalo a la función por referencia

Para la sintaxis te recomiendo siempre que mires aqui:

http://www.cplusplus.com/reference/array/array/

Por ejemplo. En ese sitio tienes toda la documentación

Para almacenar datos, cuando no conocemos inicialmente el tamaño del arry existen otras herramientas, como las listas o los vectores