例如,程序a.out:
int main()
{
return 0x10;
}
Run Code Online (Sandbox Code Playgroud)
程序b.out:
int main()
{
if(system("./a.out") == 0x10)
return 0;
else
return -1;
}
Run Code Online (Sandbox Code Playgroud)
根据cppreference,返回值system()是依赖于实现的.因此,程序b.out的尝试显然是错误的.
在上面的例子中,我如何获得0x10而不是未确定的值?如果系统调用不是正确的工具,那么正确的方法是什么?
我的环境:
我做了cabal install alex和cabal install happy.cabal二进制路径被确认添加到我的$ PATH中$(HOME)/Library/Haskell/bin/.
cabal install haskell-src-exts 发出以下编译错误:
[19 of 22] Compiling Language.Haskell.Exts.InternalParser ( dist/build/Language/Haskell/Exts/InternalParser.hs, dist/build/Language/Haskell/Exts/InternalParser.o )
templates/GenericTemplate.hs:104:22:
Couldn't match expected type ‘Bool’
with actual type ‘Happy_GHC_Exts.Int#’
In the expression:
(n Happy_GHC_Exts.<# (0# :: Happy_GHC_Exts.Int#))
In a stmt of a pattern guard for
a case alternative:
(n Happy_GHC_Exts.<# (0# :: Happy_GHC_Exts.Int#))
In a case alternative:
n | (n Happy_GHC_Exts.<# (0# :: …Run Code Online (Sandbox Code Playgroud) 我从事游戏项目.最近,当我们加载/卸载不同的场景大约三次时,我们遇到了一个问题,我们捕获了"bad_alloc"异常.
每次加载场景时,我们首先将压缩的.zip文件夹加载到内存中,然后从中提取游戏对象.由于我们没有任何内存分析器工具,我只需使用Process Explorer的性能图来查看发生了什么:
我追溯到每个负载的新运算符.加载压缩文件夹本身需要100~120 MB内存,而bad_alloc会在第3次加载时从中抛出.
我们的平台安装了2GB物理内存.在卸载场景后,我们似乎没有留下任何东西.每个压缩文件夹大小相同.但是,第3次加载的新运算符不起作用.
我想知道,这个bad_alloc的可能含义是什么?内存不足?或者根本无法分配所需大小的连续块?如果确实有几种可能性,我该如何判断呢?
任何帮助都是适用的,谢谢!