раз мне сказали шо надо память выделять, я так и сделал, но результат не совсем такой какой должен быть - ??└?♥️??
wchar_t* buff = (wchar_t*)malloc(sz * sizeof(wchar_t)); wchar_t* res = buff; free(buff); return res; Явно что-то не то
sizeof(str) делает совсем не то, что вы хотите
buff и res указывают на одно и то же, поэтому если один освободили, то и второй невалиден
ага, понял. Попытался убрать free получилось 127.???
потому что правильно находите размер, и всё получится
просто я переписывал такую же функцию с плюсов и там использовался sizeof. Всё работало, поэтому так и оставил
На плюсах тоже странно как это работало
потому что там возможно передают массив по ссылке
я немного перепутал, там использовалось (int)str.size()😅
Я тебе ранее , потом, ещё написал, что у тебя там написан просто бред. Так что не удивительно. При этом, код будет работать правильно или нет в зависимости от вызывающего кода, а его ты вообще не присылал. Так что рекомендации 0) не пытайся это писать вообще. Это сложно и не нужно в плане обучения вообще ни для чего. Бесполезно. 1) Если пишешь, очень аккуратно надо писать КАЖДЫЙ параметр, читать документацию , и проверять все ошибки и условия возврата. 2) Если напишешь и не получается, используй отладчик и смотри, что происходить по шагам (или отладочную печать) 3) Если совсем никак - шли ПОЛНЫЙ КОД чтобы можно было запускать и проверять
так он запускается...
это и был полный код
Ну это да, я это не видел
Обсуждают сегодня