Я хотел бы лучше понять динамические указатели.Управление динамическим указателем C-программирование
int main(){
// allocate pointer
randomStructure *pt = (randomStructure *)malloc(sizeof(randomStructure));
// arbitrary code that manipulates data that *pt points to.
// function call
function(pt);
return 0;
}
void function(randomStructure *pt){
randomStructure *tempPt = (randomStructure *)malloc(sizeof(randomStructure));
// arbitrary code that manipulates data that *tempPt points to.
pt = tempPt;
//free(tempPt); Question2
/* Question 4
while(index){
randomStructure *tempPt = (randomStructure *)malloc(sizeof(randomStructure));
}
*/
}
Вопросы:
Когда я прохожу
*pt
к функции, она автоматически обновит*pt
в основной или мне нужно вернуться*pt
из функции, чтобы сделать это?Если я освобождаю
*tempPt
в функции, это также бесплатно*pt
?Если функция malloc a
*tempPt
внутри функции, будут ли данные, которые она указывает на автоматическую освобождение после завершения функции?Этот вопрос можно ответить косвенно из предыдущих вопросов, но как бы я создать
*tempPt
и DEALLOCATE в цикле без deallocating*pt
так, что этот процесс может повторяться?
EDIT Вопрос 4: Возможно, более конкретный пример того, что я пытаюсь сделать, прояснит вопрос. Я запускаю базовый алгоритм эвристики. После того, как я передаю указатель на функцию, я манипулирую данными, а затем запускаю алгоритм и указываю на него с помощью * tempPt. Если данные * tempPt более оптимизированы, чем * pt, я хочу обновить * pt с данными * tempPt.
Что такое «Динамический указатель»? –
Добро пожаловать в переполнение стека. Пожалуйста, не используйте дознания или подписи. SO не является дискуссионным списком, это скорее онлайн-справочник по проблемам программирования. Совместимость и ясность очень важны, и наоборот, пух нежелателен. Пожалуйста, прочитайте «[ask]» для получения дополнительной информации. –
Gotcha мой плохой. Это мой первый пост. Все советы приветствуются! Я не совсем уверен, как бы я назвал указатель, указывающий на динамически выделенную память, поэтому я просто назвал ее «Динамический указатель». Возможно, мой примерный код прольет на него больше света? – Snawwz