Почему-то ловлю ошибку конверсии void* в char* при использовании функции malloc.
char *strLine = (char *)malloc(256);
strLine = memset(strLine, 0x00, 256);
Ошибка возникает именно во второй строчке. Компилятор указывает мне, мол, уважаемый пользователь, вы неверно объявили переменную strLine. Погуглил - нашёл очень похожую проблему тоже с использованием malloc, но там всё решилось добавлением этого самого **(char *)**перед malloc. Так в чём же дело? Почему мне это не помогает?
Ответ
Ну, проблема у вас во второй строчке, а не в первой: strLine имеет тип char*, а memset возвращает void*
Вы могли бы скастить возвращаемое memset'ом значение в char*. Но оно вам в принципе вовсе не нужно. Просто напишите
memset(strLine, 0x00, 256);
Вы ж всё равно уже аллоцировали память, ничего нового из memset к вам не придёт.
Комментариев нет:
Отправить комментарий