首页 > 解决方案 > 在c中连接两个动态分配的char数组

问题描述

我正在 Contiki OS 中开发程序。我尝试将函数的输入复制到 char 数组,然后将动态 char 数组连接到另一个。目的地返回 NULL 值。这是生成日志值的代码,它是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是一个临时数组,用于存储日志值。我希望将req值复制到rcvReq,但rcvReq的值为 NULL。如果您告诉我如何解决此问题,我将不胜感激。

标签: carrayscharmalloccontiki

解决方案


推荐阅读