Свободная память с использованием SUN RPC - PullRequest
0 голосов
/ 14 февраля 2011

все. Когда я использую static char* result = malloc(1000*sizeof(char)); в одной процедуре серверная программа на базе ONC + SUN RPC. Но эта строка - то, что должно быть возвращено.

Если это статично, я думаю, что нет необходимости освобождать его. Каждый раз строковому результату будет присвоен один и тот же адрес, не вызывающий конфликтов памяти

Я прав? Или что мне делать? Это возвращаемое значение, как его освободить? Спасибо

1 Ответ

0 голосов
/ 14 февраля 2011

Если я понимаю ваш вопрос, вы используете инициализатор в вызове функции, который возвращает тип char*.В этом случае нет проблем с использованием статического класса хранения.result сохранит свое значение (адрес памяти, который вы выделили) на протяжении всей жизни вашей программы.

Однако в этом случае malloc не будет вызываться несколько раз.Только в первый раз через вашу функцию.Кроме того, память все еще выделяется в куче, поэтому вам все равно нужно освободить ее, когда вы закончите.Однако это освобождение будет выполняться при выходе из вашей программы (), поэтому его можно игнорировать.

...