我正在处理很长的名单和大树.
有时候我会发现这个错误:
surgery a;;
Characters 8-9:
surgery a;;
^
Error: This expression has type int t/1044
but an expression was expected of type 'a t/1810
# type 'a t = | Leaf of ('a -> 'a -> int)
| Node of 'a * 'a t * 'a t * ('a -> 'a -> int)
Run Code Online (Sandbox Code Playgroud)
我不确定这种错误是什么类型,但我想这是某种溢出.类型匹配正确,但在类型后面的反斜杠后面有大数字.在这种情况下,1044和1810.
这次我之前运行了一些代码surgery a.如果我杀死当前的顶级并重新开始,surgery a就会运行.
我的问题是:
1.这个错误究竟是什么?
2.何时以及如何发生?
3.为什么从新的顶层重新运行它会使它工作?
4.我该如何处理?
error-handling ocaml functional-programming overflow large-data
我有div一个div. 父母的宽度是 600px ,overflow-x: scroll;孩子的宽度是 1200px 。
在页面加载时,孩子的左侧div显示为可以向右侧滚动。
我不知道如何让起始位置在右手边而不是左手边。任何提示都非常感谢...
所以这是我计划的一部分。当我为差值超过 250000 的数字调用 bound 时,它会导致堆栈溢出.. 我该如何解决这个问题?该程序适用于较小的输入。我很确定程序的其余部分都很好。有没有办法重写函数以便它们工作?我宁愿不使用 for while 循环。谢谢
let rec sqdigits a =
if a = 0 then 0
else ( a mod 10)*( a mod 10) + sqdigits (a/10);;
let rec bound c d =
if c>d then []
else (sqdigits (c))::(bound (c+1) d);;
Run Code Online (Sandbox Code Playgroud) 我很困惑为什么这不起作用。我试图在里面实现水平滚动div.queue-wrapper,所以div.queue-month如果没有足够的空间(这是他们目前所做的),请不要一个接一个地倒下。
HTML
<div class="queue-container">
<div class="queue-wrapper clearfix">
<div class="queue-month">
1
</div>
<div class="queue-month">
2
</div>
<div class="queue-month">
3
</div>
</div>
</div> <!-- .queue-container -->
Run Code Online (Sandbox Code Playgroud)
CSS
.queue-container {
height: 260px;
width: 100%;
background-color: grey;
box-shadow: inset 0 2px 2px rgba(0, 0, 0, 0.5);
}
.queue-wrapper {
overflow-x: scroll;
background: yellow;
width: 100%;
}
.queue-month {
width: 385px;
float: left;
background-color: orange;
}
Run Code Online (Sandbox Code Playgroud)
jsfiddle示例
我正在使用 bootstrap 3,但由于它在小提琴中不起作用,我认为它与问题无关。
我使用 bootstrap 开发了一个模板,下面的Fiddle代表了预期的布局,当里面的内容达到窗口高度时,我希望黄色区域能够滚动,而右侧的红色面板保持固定。
HTML
<div class="header">
Header
</div>
<div class="content">
<div class="left-panel">
<div class="dummy-content">
Results
</div>
<div class="dummy-content">
Results
</div>
<div class="dummy-content">
Results
</div>
<div class="dummy-content">
Results
</div>
<div class="dummy-content">
Results
</div>
<div class="dummy-content">
Results
</div>
<div class="dummy-content">
Results
</div>
</div>
<div class="right-panel">
Map
</div>
</div>
<div class="footer">
Footer
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
body{
text-align:center;
width:100%;
height:100%;
}
.header{
background:black;
color:#fff;}
.left-panel{
background:yellow;
overflow-y: scroll;
float:left;
width:50%;
height:100%;
}
.dummy-content{
height:150px;
}
.right-panel{
background:tomato;
height:100%;
float:right;
width:50%;
}
.footer{
background:grey; …Run Code Online (Sandbox Code Playgroud) 以下代码在我的系统上产生奇怪的东西:
#include <stdio.h>
void f (int x) {
int y = x + x;
int v = !y;
if (x == (1 << 31))
printf ("y: %d, !y: %d\n", y, !y);
}
int main () {
f (1 << 31);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译-O1,这打印y: 0, !y: 0.
现在,除了删除int v或if行产生预期结果的令人费解的事实之外,我对溢出转换为逻辑不一致的未定义行为感到不舒服。
这应该被认为是一个错误,还是 GCC 团队的理念是,一个意外的行为可以级联成逻辑矛盾?
在我的应用程序中,我将 gridview.count 放在列小部件中,但 gridview.count 不会滚动并在底部溢出,因此请给出一些建议
\n这是我的代码
\n @override\n Widget build(BuildContext context) {\n return Stack(\n children: <Widget>[\n Image.asset(\n "images/background.png",\n height: MediaQuery.of(context).size.height,\n width: MediaQuery.of(context).size.width,\n fit: BoxFit.fill,\n ),\n Scaffold(\n backgroundColor: Color(0x00000000),\n body: Center(\n child: Column(\n mainAxisAlignment: MainAxisAlignment.start,\n crossAxisAlignment: CrossAxisAlignment.center,\n children: <Widget>[\n Container(\n child: Padding(\n padding: EdgeInsets.only(top: 50,bottom: 10),\n child: Row(\n children: <Widget>[\n Spacer(flex: 2),\n Text(\n \'Interests\',\n textAlign: TextAlign.center,\n overflow: TextOverflow.ellipsis,\n maxLines: 1,\n style: TextStyle(\n color: Color(0xFF0066CB),\n fontSize: 20.0,\n ),\n ),\n Spacer(),\n Expanded(\n child:SvgPicture.asset(\n "images/vector.svg",\n height: 30.0,\n width: 30.0,\n ),\n )\n ],\n ),\n …Run Code Online (Sandbox Code Playgroud) 我正在开发一个函数,该函数执行特定的 powershell 命令,然后返回输出(如果与 EOF 不同)。该函数第一次正确执行,但第二次输出很奇怪,表明我的代码的某些部分存在缓冲区溢出。我找不到它。否则,我无法为这种行为找出其他可能的解决方案。
\n这是代码:
\nchar* buffer_reset(char* buffer);\nbool jobsreader (const char* printer_name, char* buffer);\n\nint main (int argc, char *argv[]) {\n char buffer[1000];\n char* pbuffer = buffer;\n jobsreader("Microsoft Print to PDF", pbuffer);\n pbuffer = buffer_reset(pbuffer);\n jobsreader("Microsoft Print to PDF", pbuffer);\n return 0;\n}\n\nchar* buffer_reset(char* buffer) {\n char* memory_reset = &buffer[0];\n char* start = memory_reset;\n while (*memory_reset != '\\0') {\n *memory_reset = '\\0';\n memory_reset++;\n }\n buffer = start;\n return buffer;\n}\n\nbool jobsreader (const char* printer_name, char* buffer) {\n FILE *output;\n const …Run Code Online (Sandbox Code Playgroud) 说我要减去:0000 0000 - ( - 1)
那是:(两个补充)
0000 0000
- 1111 1111
---------
= ???? ????
Run Code Online (Sandbox Code Playgroud)
什么事情会发生,我的大脑现在真的和我在一起,它之前完全没问题,我认为它的溢出让我搞砸了,有人可以请一些清关吗:)?
long long n, prod, i;
n = 13;
prod = 1;
for (i = 1 ; i <= n ; i++) {
prod *= i;
}
printf("%d\n", prod);
printf("%d\n", sizeof(long long));
Run Code Online (Sandbox Code Playgroud)
回报
$ 1932053504
$ 8
Run Code Online (Sandbox Code Playgroud)
结果显然是溢出的.但我不明白为什么会发生这种情况long long.sizeof(int)返回4 [字节],但产品是相同的.我究竟做错了什么?