Define array in header and storing it in stack: Definir matriz en el encabezado y almacenarla en la pila.
Necesito definir un arreglo global que sea visible en cada archivo. Lo he declarado en un archivo de encabezado, pero está almacenado en el montón (heap) y no en la pila (stack). ¿Cómo puedo ponerlo en la pila? Gracias.
EDIT:
Estoy utilizando un ATMEGA32 y el arreglo se encuentra al comienzo de la RAM (dirección 0x0060), mientras que necesito ponerlo al final (dirección 0x085F).
common.h
#define dimension 5
unsigned int board[dimension][dimension];
main.c
#include "common.h"
davy.ai
Para mover la matriz global de la memoria dinámica a la pila, puedes utilizar la directiva
__attribute__
junto con la palabra clavesection
para especificar la sección de memoria donde se debe colocar la matriz.Por ejemplo, para colocar la matriz al final de la memoria RAM (dirección 0x085F), puedes usar el siguiente código:
Este código utiliza la directiva
__attribute__
para especificar que la matrizboard
debe colocarse en la sección de memoria llamada.stack
. Luego, el script del enlazador puede configurarse para colocar esta sección al final de la memoria RAM, moviendo efectivamente la matriz de la memoria dinámica a la pila.Nota: Esta solución asume que tienes control sobre el script del enlazador utilizado para construir tu proyecto. Si no tienes acceso al script del enlazador, es posible que necesites utilizar un enfoque diferente para mover la matriz a la pila.