объединение двух динамически распределенных массивов символов в c - PullRequest
0 голосов
/ 26 апреля 2019

Я занимаюсь разработкой программы для ОС Contiki. Я пытаюсь скопировать вход функции в массив символов и затем объединить динамический массив символов в другую.Пункт назначения возвращает значение NULL.Вот код создания значения log , которое является входом функции makerequest :

   char *log;
   log = (char *)malloc(400);
   if(uip_newdata()) {
     strncat(log, (char *)uip_appdata ,uip_datalen());
    }
   makerequest(log);

и функции makerequest , которую я пытался выполнитьобъединить значение req с rcvReq :

   static char * rcvReq;       
   void makerequest(char * log){
        rcvReq = (char*)malloc(300);
        char * req;
        req = (char*)malloc(200);
        memset(req, 0, sizeof(req));
        strcpy(req, log);

        ...

        if(rcvReq != NULL){
           strncat(rcvReq, req, strlen(req));
          }
        else{
           strncpy(rcvReq, req, strlen(req));
          }
   }

req - это временный массив для хранения значения log .Я ожидал, что значение req скопировано в rcvReq , но значение rcvReq равно NULL.Буду очень признателен, если вы скажете мне, как я могу решить проблему.

...