C++ Вопрос Ref для чистого C

Ты че баклан, дефективный?
Пользователь
Статус
Оффлайн
Регистрация
18 Мар 2019
Сообщения
756
Реакции[?]
64
Поинты[?]
2K
Только начал работать с чистым C и столкнулся с проблемой с возвратом параметра

Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.



А именно c...
1673156754205.png чем в чистом C можно заменить?
 
Участник
Статус
Оффлайн
Регистрация
5 Окт 2017
Сообщения
784
Реакции[?]
173
Поинты[?]
11K
В C нет ссылок, они есть только в C++. Не используй оператор & в данном в случае. Вместо этого возвращай по указателю.
 
Ты че баклан, дефективный?
Пользователь
Статус
Оффлайн
Регистрация
18 Мар 2019
Сообщения
756
Реакции[?]
64
Поинты[?]
2K
Участник
Статус
Оффлайн
Регистрация
5 Окт 2017
Сообщения
784
Реакции[?]
173
Поинты[?]
11K
можешь пример скинуть?
Возврати ещё и размер этого динамически аллоцированного массива, чтобы в дальнейшем работать с байтами массива.
Код:
inline char* file_readallbytes(const char* filename, size_t* size)
{
    char* buffer = 0;
    if (filename)
    {
        const HANDLE handle = CreateFileA(filename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
        if (handle != INVALID_HANDLE_VALUE)
        {
            const unsigned long file_size = GetFileSize(handle, NULL);
            if (file_size != INVALID_FILE_SIZE)
            {
                buffer = (char*)malloc((file_size + 2) * sizeof(char));
                *size = file_size + 2;
                DWORD nb = 0;
                ReadFile(handle, buffer, file_size, &nb, NULL);
            }
            CloseHandle(handle);
        }
    }
    return buffer;
}
UPD: я вижу, что ты вернул размер файла, но он не равен размеру твоего буфера - размер буфера на 2 байта больше, что мне непонятно зачем это было сделано.
 
Последнее редактирование:
Сверху Снизу