В то время как я работал над заданием, я пришел, чтобы знать, что мы не должны использовать задание, такие как:Зачем нам нужен strdup()?
char *s="HELLO WORLD";
Программа, использующая такой синтаксис склонна по отношению к врезаться.
Я попробовал и использовал:
int fun(char *temp)
{
// do sum operation on temp
// print temp.
}
fun("HELLO WORLD");
Даже выше работы (хотя вывод компилятора и стандартна относительна).
Вместо этого мы должны попытаться strdup() или использовать Const символ *
Я пытался читать другие подобные вопросы на блоге, но не могли получить концепцию, ПОЧЕМУ ВЫШЕ КОД не должен РАБОТУ.
Является ли память выделенной ?? И какая разница делает const?
Подсказка: что означает «const char *» означает «char *» и почему использовать его в приведенном выше примере полезно (например, как может * доступ * или * изменение * s1 «вызвать сбой»)? Что позволяет strdup делать с «const char *»? – 2010-11-02 16:37:12
'char * s =" HELLO WORLD "' является инициализацией, а не назначением. Во всяком случае, почему вы думаете, что это плохо? – qrdl