Вы пометили вопрос с C без ссылки на какую-либо операционную систему или ЦП.
Понятия сегмента данных и текстового сегмента не связаны с C, они связаны с некоторыми операционными системами, которые делают это различие.
Конечно, поскольку текстовый сегмент в системах, которые его используют, предназначен для кода и данных только для чтения, а память, возвращаемая malloc, может быть изменена, это не может быть текстовый сегмент.
Сегмент данных может относиться к инициализированным данным, malloc, конечно, выделяет новые данные, поэтому значение этого сегмента данных не может быть таким.
Если ваше определение сегмента данных - это какие-либо данные, товозвращенная память является частью этого.Существуют некоторые (необычные / старые) архитектуры с отдельным адресным пространством кода и данных.
Стандарт C только обещает, что память malloc модифицируема и правильно выровнена.