|
Вариант для распечатки |
Пред. тема | След. тема | ||
Форум Программирование под UNIX (C/C++) | |||
---|---|---|---|
Изначальное сообщение | [ Отслеживать ] |
"Безопасно ли так переопределять указатели?" | +/– | |
Сообщение от CR on 20-Сен-11, 00:04 | ||
Есть какой-то буфер buf, и есть указать на данные внутри этого буфера *ptr. Есть функция foo (в примере ниже), которая ищет определённые данные в нашем буфере, начиная с указателя *ptr. Указатель на найденные данные помещается в указатель **trg. Я сильно упростил функцию foo и не передаю длину буфера, считаем что за границы нашего буфера мы гарантированно не выходим. Вопрос в том, что будет, если в качестве аргументов для этой функции я передам один и тот же указатель, как показано в примере ниже. Данный пример компилится и работает, но могут ли возникнуть проблемы при какой-нибудь хитрой оптимизации кода? Безопасно ли переопределять указатель внутри функции таким образом, как показано в примере? | ||
Ответить | Правка | Cообщить модератору |
Оглавление |
|
Сообщения по теме | [Сортировка по времени | RSS] |
1. "Безопасно ли так переопределять указатели?" | +1 +/– | |
Сообщение от Razzeeyy on 20-Сен-11, 01:00 | ||
с виду нет ничего плохого, просто исходный указатель затрет новыми данными | ||
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору |
2. "Безопасно ли так переопределять указатели?" | +/– | |
Сообщение от JohnProfic (ok) on 20-Сен-11, 12:06 | ||
Параметры функции всегда вычисляются до её вызова. Что происходит с ними внутри этой функции дело десятое. В данном случае нет ничего страшного :). А уж если компилятор напортачит, то это будет его, требующая исправления, ошибка. | ||
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору |
3. "Безопасно ли так переопределять указатели?" | +/– | |
Сообщение от CR on 21-Сен-11, 23:07 | ||
Ок, спасибо. | ||
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору |
Архив | Удалить |
Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |