Нет общего способа сделать это. Фактически, некоторые из безопасных вычислительных сред рандомизируют точное распределение и порядок адресного пространства, поэтому атаки с внедрением кода более сложны для разработки.
Тем не менее, каждая библиотека времени выполнения C должна организовать вклады данных и сегментов стека, чтобы программа работала правильно. Чтение кода запуска во время выполнения - самый прямой способ найти ответ.
Какой компилятор C вас интересует?