C++ 如何在Arduino上使用char数组实现函数
我正在使用ESP8266作为WiFi服务器绘制草图,我需要向客户端发送字符串,为此我使用以下代码:C++ 如何在Arduino上使用char数组实现函数,c++,arduino,wifi,esp8266,C++,Arduino,Wifi,Esp8266,我正在使用ESP8266作为WiFi服务器绘制草图,我需要向客户端发送字符串,为此我使用以下代码: char sbuf[] = "Hello world!\n\r"; size_t len = strlen(sbuf); for (i = 0; i < MAXCLIENTS; i++) { if (serverClients[i] && serverClients[i].connected()) { serverClients[i].write((
char sbuf[] = "Hello world!\n\r";
size_t len = strlen(sbuf);
for (i = 0; i < MAXCLIENTS; i++) {
if (serverClients[i] && serverClients[i].connected()) {
serverClients[i].write((char*) &sbuf, len);
delay(1);
}
}
但是它不起作用,客户机没有收到任何东西,有人可以告诉我我的错误是什么?sizeof没有做你认为它在这里做的事情。得到4是因为这是指针的大小。改用strlen。它将告诉您到\n的时间。如果您也需要,请添加两个
void sendDataToClient( char *sbuf[]) {
这条线也不是你想的那样。它正在传递一个指针数组。您需要的是指针或数组,但肯定不是指针数组
void sendDataToClient( char *sbuf) {
及
应该是
serverClients[i].write(sbuf, len);
我打赌 sizeof并不像你想象的那样。得到4是因为这是指针的大小。改用strlen。它将告诉您到\n的时间。如果您也需要,请添加两个
void sendDataToClient( char *sbuf[]) {
这条线也不是你想的那样。它正在传递一个指针数组。您需要的是指针或数组,但肯定不是指针数组
void sendDataToClient( char *sbuf) {
及
应该是
serverClients[i].write(sbuf, len);
我打赌 Delta,我已经做了更改,我仍然得到len4的值,客户端没有收到任何东西,您也在传递一个指针数组。丢失参数sbuf.Delta上的括号,我已经做了更改,我仍然得到len 4的值,客户端没有收到任何东西,您也在传递指针数组。丢失参数sbuf上的括号。