Если я правильно понимаю, вы хотите знать, указывает ли указатель p на глобальную область данных программы.
Решение будет зависеть от платформы, также нулевые инициализированные данные и статически инициализированные данные, вероятно, находятся в разных местах. В C нет ничего, что указывало бы на то, что эти зоны должны существовать вообще, не говоря уже о том, что они являются смежными или не находятся в одном диапазоне с кучей или даже между функциями.
Вы хотите иметь глобальный символ в начале и один в конце и использовать их ссылку для проверки диапазонов. Для этого вам нужно разобраться с компоновщиком.
Перед этим убедитесь, что библиотека C не экспортирует такие данные, даже если предполагается, что они предназначены только для внутреннего потребления.