char* buf;
buf = malloc(BUFSIZ);
memset(buf ,0 , BUFSIZ);
Я думаю, что memset инициализирует переменную buf размером BUFSIZ, но malloc также выделяет блок размера BUFSIZE памяти и возвращает указатель на начало блока переменной buf ... Я незнаю, можно ли использовать memset для указателей, потому что он инициализирует данные с размером BUFSIZE, но мы не собираемся указывать на него .... Можете ли вы предложить что-нибудь, чтобы решить эту проблему, спасибо
Всем привет и спасибоответы.Таким образом, я понял, что проблема, как правило, связана с тем, что malloc может завершиться ошибкой, и тогда buf будет указывать на NULL.И, может быть, лучший способ исправить недостаток кода - проверить, равно ли значение buf нулю?
char* buf;
buf = malloc(BUFSIZ);
if(buf!=null)
{
memset(buf ,0 , BUFSIZ);
}
Может быть, лучший способ исправить недостаток кода - проверить, является ли bufравно нулю?
char* buf;
buf = malloc(BUFSIZ);
if(buf!=null)
{
memset(buf ,0 , BUFSIZ);
}
Возможно ли на практике malloc потерпеть неудачу?Или это просто теория?