Передача адреса массива в структуру c++
Проблема заключается в том, что компилятор выдаёт ошибку когда я пытаюсь передать &row в char*. Не буду никому пудрить мозги, просто покажу код:
//Передача адреса массива в структуру
static http_response buff;
...
static unsigned char row[] =
#include "test.png.hpp"
buff.row = &row;
В test.png.hpp находятся байты картинки т.к. я не хочу засорять главный файл 4886 строками одних только байтов, я вынес их в отдельный файл.
//Сама структура
typedef struct _HTTP_RESPONSE_
{
int action;
std::string not_row;
size_t row_size;
unsigned char *row;
} http_response;
на typedef не ругайтесь, надо было создать функцию типа http_response*. Вот что пишет сам компилятор:
src/handler.cpp: In member function ‘http_response* Handler::Load()’:
src/handler.cpp:35:20: error: cannot convert ‘unsigned char (*)[58587]’ to ‘unsigned char*’ in assignment
35 | buff.row = &row;
| ^~~~
| |
| unsigned char (*)[58587]
make: *** [Makefile:16: handler.cpp.o] Error 1
Ответы (1 шт):
Автор решения: Арсений Лашкевич
→ Ссылка
Как и говорил EOF. Достаточно было просто написать buff.row = row или же buff.row = &row[0]