Страницы

Поиск по вопросам

четверг, 9 апреля 2020 г.

Ошибка конверсии void* в char* при использовании функции malloc

#cpp

                    
Почему-то ловлю ошибку конверсии void* в char* при использовании функции malloc.

char *strLine = (char *)malloc(256);
strLine = memset(strLine, 0x00, 256);


Ошибка возникает именно во второй строчке. Компилятор указывает мне, мол, уважаемый
пользователь, вы неверно объявили переменную strLine. Погуглил - нашёл очень похожую
проблему тоже с использованием malloc, но там всё решилось добавлением этого самого
**(char *)**перед malloc. Так в чём же дело? Почему мне это не помогает?
    


Ответы

Ответ 1



Ну, проблема у вас во второй строчке, а не в первой: strLine имеет тип char*, а memset возвращает void*. Вы могли бы скастить возвращаемое memset'ом значение в char*. Но оно вам в принципе вовсе не нужно. Просто напишите memset(strLine, 0x00, 256); Вы ж всё равно уже аллоцировали память, ничего нового из memset к вам не придёт.

Комментариев нет:

Отправить комментарий