在c中串联两个动态分配的char数组

时间:2019-04-26 04:30:25

标签: c arrays char malloc contiki

我正在Contiki OS中开发一个程序。尝试将函数的输入复制到char数组,然后将动态char数组连接到另一个。目标返回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。如果您告诉我如何解决该问题,我将不胜感激。

0 个答案:

没有答案