Я разрабатываю код для использования в симуляторе COOJA. Я использовал malloc()
для всех распределений динамической памяти. Во время симуляции частички COOJA периодически перезапускаются, и, наконец, я получаю сообщение об ошибке, которое говорит мне, что причина в том, что я использую malloc()
.
Я подумываю использовать специальный класс распределения памяти Contiki под названием «mmem». Я не нашел ни одного примера его использования. Вот пример, в котором я использовал malloc()
для выделения памяти строке с именем sent
.
Как заменить malloc()
на mmem
вместо malloc()
?
char *sent;
sent = (char*)malloc(120);
strncpy(sent , "example" , 7);
strncat(sent , "|", 1);
char* sent = malloc(120);
вы делаетеchar sent[120];
и т. Д. - person Morten Jensen   schedule 21.07.2019char sent[120]
, я должен иметь дело со 120 символами и преобразовывать их в строку и возвращать обратно много раз. Я выбрал указатели вместо массивов, чтобы упростить работу со строками и избежать сложности. - person mahshid   schedule 21.07.2019char sent[120];
sent
- это указатель на символ, как если бы вы сделалиchar* sent = malloc(120);
. Память просто выделяется в стеке, а не в куче. - person Morten Jensen   schedule 21.07.2019