невозможно использовать базовый адрес кучи в c - PullRequest
0 голосов
/ 09 февраля 2019

Я экспортировал ярлык __heap_base из файла запуска keil (__heap_base - это ярлык, указывающий на начало кучи).В файле AC объявлен __heap_base как extern и назначен адрес __heap_base пустому указателю. Но этот пустой указатель всегда имеет значение 0x00000000 и, следовательно, не может использоваться для указания на базу кучи.Поэтому мой косвенный вопрос заключается в том, как сохранить базовый адрес кучи в указателе и использовать его в качестве аргументов для функций управления памятью, которые я могу объявить и определить

            #include <stdint.h>
            extern  uint32_t __heap_base;
            void* original_heap_base=&__heap_base;
            /*void get_heap_base()
            {
                 original_heap_base=&__heap_base;
            }*/
            void* mem_init()
            {
                void *temp=original_heap_base;
                original_heap_base+=4;
                return temp;
            }       
            int main()
            {
                int *p=(int*)mem_init();
                *p=5;
                return 0;
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...