我已经为我的代码添加了一个新函数,现在我使用的整数受到某种内存溢出的影响。 (请注意,这与Arduino Uno的.ino草图有关)
而不是用xPos--;
递减1,而是递减256
(如果我删除了printText函数,则溢出不会发生。)
整数xPos和char缓冲区用
定义int xPos = 0;
char buffer[26];
就在包含之下。 u8g.drawStr函数在我的显示器上绘制字符串,对x和y采用两个整数,并将char *作为参数作为字符串。
void printText(const char* inputText)
{
int y = yPos;
for (int i = strlen(inputText); i > 0; i -= 25)
{
strncpy(buffer, &inputText[strlen(inputText) - i], i >= 25 ? 25 : i);
buffer[26] = '\0';
u8g.drawStr(0, y, buffer);
y += 8;
}
}
任何理事会都会非常感激:)
答案 0 :(得分:4)
你的缓冲区只有26个插槽:
09-Aug-2016 09:41:42.718 SEVERE [http-nio-8080-exec-10] com.sun.jersey.spi.container.ContainerRequest.getEntity A message body reader for Java class org.glassfish.jersey.media.multipart.FormDataMultiPart, and Java type class org.glassfish.jersey.media.multipart.FormDataMultiPart, and MIME media type multipart/form-data; boundary=myRandomBoundary12345 was not found.
The registered message body readers compatible with the MIME media type are:
*/* ->
com.sun.jersey.core.impl.provider.entity.FormProvider
com.sun.jersey.core.impl.provider.entity.StringProvider
com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
com.sun.jersey.core.impl.provider.entity.FileProvider
com.sun.jersey.core.impl.provider.entity.InputStreamProvider
com.sun.jersey.core.impl.provider.entity.DataSourceProvider
com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
com.sun.jersey.core.impl.provider.entity.ReaderProvider
com.sun.jersey.core.impl.provider.entity.DocumentProvider
com.sun.jersey.core.impl.provider.entity.SourceProvider$StreamSourceReader
com.sun.jersey.core.impl.provider.entity.SourceProvider$SAXSourceReader
com.sun.jersey.core.impl.provider.entity.SourceProvider$DOMSourceReader
com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$General
com.sun.jersey.core.impl.provider.entity.EntityHolderReader
com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$General
com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$General
然而你试着写到第27个插槽:
char buffer[26];
那不行。 (零是第一个插槽,一个是第二个插槽,依此类推。所以26是第27个插槽。)