uint8_t* login_=MD5::make_hash(login); // получили хеш // free(login_); // здесь мы сразу же его затрем, посему отсюда удаляем Arduino_CRC32 crc32; uint32_t crc32_res = crc32.calc((uint8_t const *)login_, strlen(login_)); // тут что бы ворнинга небыло, для красоты, указываем что переменная (uint8_t const *) data_buf[0] = crc32_res >> 24; data_buf[1] = crc32_res >> 16; data_buf[2] = crc32_res >> 8; data_buf[3] = crc32_res; free(login_); // вот тут, когда нам хеш уже не нужен, можем почистить память
Комментарии: 8
Dim
или char login_[]=MD5::make_hash(login);
Dim
да что же в этом хэше такого тяжелого - он же всего 8 байт!
Stanislav
Он в цикле создаётся. И не убивается - через какое-то время память ёк
Toha
тебе в лом одну строчку с фри в нужном месте написать? ты уже на 2 порядка больше возмущений написал
Aleksey
вовремя закончить проект - это не по програмистски
Dim
ну вот написал char login[]="login"; char password[]="password"; uint8_t* login_=MD5::make_hash(login); Arduino_CRC32 crc32; uint32_t crc32_res = crc32.calc((uint8_t *)login_, strlen(login_)); data_buf[0] = crc32_res >> 24; data_buf[1] = crc32_res >> 16; data_buf[2] = crc32_res >> 8; data_buf[3] = crc32_res; free(login_); uint8_t* key=MD5::make_hash(password); //free(key); но все равно идут ошибки D:\Arduino\arduino-1.8.15\projects\SoftwareSerialExample_crypto\SoftwareSerialExample_crypto.ino: In function 'void loop()': D:\Arduino\arduino-1.8.15\projects\SoftwareSerialExample_crypto\SoftwareSerialExample_crypto.ino:61:67: warning: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'const char*' [-fpermissive] uint32_t crc32_res = crc32.calc((uint8_t *)login_, strlen(login_)); ^ In file included from D:\Arduino\arduino-1.8.15\hardware\arduino\avr\cores\arduino/Arduino.h:25:0, from sketch\SoftwareSerialExample_crypto.ino.cpp:1: d:\arduino\arduino-1.8.15\hardware\tools\avr\avr\include\string.h:399:15: note: initializing argument 1 of 'size_t strlen(const char*)' extern size_t strlen(const char *) ATTR_PURE ; ^~~~~~
Toha
(uint8_t *)login_ на (const char*)login_ поменяй и еще раз, это не ошибка, оно не влияет
Dim
а в чем разница?