字符串复制基础

String copy- basics

这段代码好吗?

void function (char* reqData) {
    char serverData[130]={0};
    uint8_t buffer[128] = {0};
    uint32_t len = wifi.recv(&mux_id, buffer, sizeof(buffer), 100);

    //fill the serverData in some for loop
     for(uint32_t i = 0; i < len; i++) 
           serverData[i]=(char)buffer[i];

    serverData[len ] = '[=10=]';
    strcpy(reqData,serverData);       // * my concern !
}

并且在主要的情况下,使用 with :

//some global var
char *incomingData={0};

//then 

function(incomingData);

它给我带来了无法解释的问题(硬件上的奇怪崩溃)

好的

strcpy(reqData,serverData);       // * my concern !

reqData 指向 incomingData 指向的位置:

char *incomingData={0};

但是你没有正确初始化incomingData,它没有指向你可以写东西的内存。另外 ={0} 指针的初始化对我来说似乎有点奇怪。你可以像下面这样初始化它 - 如果你提前知道大小。

char incomingData[SIZE] = {0};

还有内部函数:

char serverData[130]={0};

serverData 长度为 130 小心缓冲区溢出,如果在接下来的行中收到大于 130 的数据怎么办?