我基本上已经使用了AsyncUDP Server example,并且试图将rowSums(anscombe[grep("^x", names(anscombe))] > 10 &
anscombe[grep("^y", names(anscombe))] > 9)
# [1] 0 0 1 0 1 1 0 1 2 0 0
的内容保存到字符串中。我遇到了关于packet.data()
的各种错误。我已经为此苦苦挣扎了好几个小时,而且还没有记录每一步。
如果我使用invalid conversion
,我会得到String testString = packet.data();
。
我显然不擅长C语言,无法完全理解所有这些数据类型,指针等,以及如何摆脱似乎很简单的问题。
答案 0 :(得分:0)
保存版本:
self.show_frame(Class_second)
如果数据包的数据以null结尾,则以下操作应该有效:
char* tmpStr = (char*) malloc(packet.length() + 1);
memcpy(tmpStr, packet.data(), packet.length());
tmpStr[packet.length()] = '\0'; // ensure null termination
String testString = String(tmpStr);
free(tmpStr); // Strign(char*) creates a copy so we can delete our one
这是可能的,因为 unit8_t *本质上与 char *相同,但是编译器本身无法进行此转换,因此您必须执行显式操作投。 然后可以使用 String(char *)的构造函数。