2015-04-12 2 views
0

Когда я использую malloc в C, я использую его в разных функциях и освобождаю указатели, которые я использовал в malloc вне функции.Malloc в C копирование ранее выделенных строк?

Функция 1: выделяет память для точки, которая является строкой «привет» возвращает указатель, который имеет «привет»

функция 2: У меня есть указатель и выделить память для этого указателя, он также содержит «привет». Хотя я ничего не сделал с этим указателем.

Почему это происходит? Как я могу остановить это?

Я пытался перераспределить память и освободить несколько раз, но ничего не работает.

+1

Используйте 'calloc', и вам не о чем беспокоиться. – JS1

+2

Где ваш код? – Deanie

+0

@ JS1, используйте 'calloc()', и вы, вероятно, замаскируете проблему; но у вас все еще будет *** проблема. Это, скорее всего, просто затруднит отладку. – Mawg

ответ

0

Ваш вопрос непонятен. Если вы выделяете память malloc, библиотека не инициализирует память, на которую возвращается указатель. Он может содержать все: в вашем случае он может содержать одну и ту же строку, но это ничего не значит.

Отправьте свой код, чтобы подтвердить эту диагностику.

+0

приятный комментарий ;-) – Mawg

Смежные вопросы