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|)
typedef int Tarray [];
void generarConjunto(Tarray ar); //esta función genera los 100 primeros nºs de un conjunto y los mete en un array.
//Por lo que no se si debería haber definido la dimensión de Tarray como [100]
//-----------------
int main(){
Tarray ar; //¿Cuándo pongo los corchetes? En caso de tener que ponerlos,
//¿debo definir su tamaño, o el tamaño viene dado al inicializar el tipo Tarray?
//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"
generarConjunto(ar);
return 0;
}
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.
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