¿Cómo puedo unir dos listas en un solo vector de tamaño constante?

Vuelvo a molestarte:
Es posible crear un vector de esta forma:
m=5
int vector[m];
Necesito unir dos listas en un solo vector y me dice que el tamaño debe de ser constante.
Respuesta
1
Es un placer ayudar siempre.
Los arreglos estáticos siempre tienen el mismo tamaño y éste debe establecerse al momento de definir la variable, así:
int vector [5];
Dado que el tamaño (dimensión) debe ser constante, no puedes usar una variable para ello.
Si deseas crear un arreglo dinámico debes utilizar el operador new si usas C++ o la función malloc si usas C. Ejemplos:
Ej. C++:
int *vector = new int [tamanyo];
Ej. C:
int *vector = (int *) malloc(tamanyo*sizeof(int));
En ambos casos reservas memoria por una cantidad de tamanyo*sizeof(int) bytes. Como puedes ver, en C++ la sintaxis es más cómoda.
Una vez que dejen de servirte estos arreglos debes tener el cuidadode liberar la memoria reservada o tendrás problemas.
Ej. C++:
delete vector;
Ej. C:
free(vector);
Espero esto haya sido de ayuda. Si tienes alguna duda al respecto no dudes en preguntar.
De acuerdo a tu respuesta se esta creando un arreglo de enteros desde un puntero, ahora si deseo asignar un valor sería:
*vector[5]=3;
¿Es eso correcto?
Sería así:
vector[4] = 3;
Para asignar el número 3 al elemento 5.
Un arreglo es igual que un puntero en realidad.
Ambos representan direcciones de memoria que indican el inicio de una serie de elementos.
La diferencia estriba en que el arreglo no puede cambiar de dirección, no puedes hacer que cambie el lugar a donde apunta en tiempo de ejecución.
En cambio al puntero puedes hacerle apuntar a cualquier dirección de memoria en el momento que desees.
En ambos casos, es responsabilidad del programador no acceder a elementos que estén del intervalo establecido.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas