Tengo una matriz muy grande que debe tener 262144 elementos de longitud (y potencialmente mucho más grande en el futuro). He tratado de asignar la matriz en la pila, así:¿Cómo creo una matriz en C++ que está en el montón en lugar de la pila?
#define SIZE 262144
int myArray[SIZE];
Sin embargo, parece que cuando intento y añadir elementos a partir de cierto punto, los valores son diferentes cuando trato de acceder a ellos. Entiendo que esto se debe a que solo hay una cantidad limitada de memoria en la pila, a diferencia del montón que tiene más memoria.
he intentado lo siguiente sin mucha suerte (no se compila):
#define SIZE 262144
int *myArray[SIZE] = new int[SIZE];
Y entonces considerado el uso de malloc
, pero me preguntaba si había una manera más C++ como de hacer esto ...
#define SIZE 262144
int *myArray = (int*)malloc(sizeof(int) * SIZE);
¿Debo simplemente seguir con malloc
?
cambie "myArray [SIZE]" a "myArray" en su segundo bloque de código. – eduffy
Vijay, esta no es una cuestión de aprender la sintaxis. La primera opción es correcta, excepto por el tamaño, y la segunda opción es un error bastante común que merece mención. Además, ¿este sitio no trata también de ayudar cuando alguien no entiende la sintaxis? –
Tener un error de sintaxis en una pregunta no lo convierte en una mala pregunta. –