考虑一个返回a的函数,Type*所以看起来它可以Type在其定义中分配一个,但你无法确定(有很多函数,你没有时间阅读它们的定义).
你怎么知道你是否应该删除返回的指针?例如,这是类型:
struct MyStruct
{
MyStruct(void) { cout << "Created.\n"; }
~MyStruct(void) { cout << "Deleted.\n"; }
};
Run Code Online (Sandbox Code Playgroud)
这是功能:
MyStruct* Func1(void)
{
return (new MyStruct());
}
Run Code Online (Sandbox Code Playgroud)
Func1分配了一个指针,您应该稍后取消分配它.但也许定义是别的,指针不应该是deleted.
我的问题是:你如何判断是否删除指针?例如:也许指针是静态的?
MyStruct* Func2(void)
{
static MyStruct* ms = &MyStruct();
return ms;
}
Run Code Online (Sandbox Code Playgroud)
取消分配此指针会使整个程序崩溃.
提前致谢.
我的XML构建如下:
<?xml version="1.0" encoding="utf-8" ?>
<Pages>
<Page id="1" title="myTitle">
Content
</Page>
<Page id="2" title="myTitle2">
Content2
</Page>
</Pages>
Run Code Online (Sandbox Code Playgroud)
如何通过C#代码中的ID获取内容?
我亲眼目睹了提及内联的帖子,使得他们的软件运行得更快[例如].
这让我很奇怪,我什么时候应该为性能进行内联功能?
此外,C++内联的相同指南是否适用?
注意:
我不是在问什么时候(显然需要的时候),或者为什么,我问的是,如果我碰巧遇到瓶颈,内联什么时候会有用?
我正在寻找一种易于快速编写脚本的解释语言,如python或ruby,但它具有更多的Haskell感觉(即一种函数式语言).
具体来说,我希望它具有像haskell一样的模式匹配功能.这样的事情存在吗?
编辑:我主要问,因为我喜欢学习新语言,我注意到我学习的语言中有空位.
一方面,我已经解释并动态地输入了具有功能元素的Python和Ruby等语言,但并没有把这个概念放得太过分.
另一方面,我有Haskell,它具有我喜欢的许多功能特性,但是非常严格(我需要花费相当多的时间来完成简单的程序).
我只是想知道是否存在分裂这些差异的东西.
haskell functional-programming scripting-language interpreted-language pattern-matching
我想有一个懒惰生成的随机数列表,我设法做到但是unsafeInterleaveIO:
rs :: Random a => (a,a) -> IO [a]
rs b = do
r <- randomRIO b
ns <- unsafeInterleaveIO $ rs b
return (r:ns)
Run Code Online (Sandbox Code Playgroud)
有没有安全的方法来实现这种价值观?
我有一个程序链接-rtsopts和调用,+RTS -s并在我得到这个时间:
INIT time 0.000s ( 0.001s elapsed)
MUT time 4.047s ( 9.694s elapsed)
GC time 0.578s ( 0.514s elapsed)
RP time 0.000s ( 0.000s elapsed)
PROF time 0.000s ( 0.004s elapsed)
EXIT time 0.000s ( 0.000s elapsed)
Total time 4.625s ( 10.209s elapsed)
Run Code Online (Sandbox Code Playgroud)
这个程序运行了大约10秒钟.它与线程RTS相关联但是它使用了-N1我不明白为什么在挂钟时间和CPU时间之间首先会有区别.
我刚刚在GHC用户指南中找到了这个:
接下来是CPU时间和挂钟时间,按运行时系统当时的操作细分.
那么,CPU时间是否低于挂钟时间有什么意义呢?
注意:我的计算机在执行我的程序期间没有做任何艰苦的工作,当然没那么多..这就是为什么我很困惑并担心我的程序行为不端.
更新:我想我可能找到了罪魁祸首:RTS是否计算IO的CPU时间?如果它没有,那可能是原因,有大量的写作.
我正在尝试安装network和old-time使用cabal-install。当我尝试安装时,它失败并显示:
setup.exe: The package has a './configure' script. This requires a
Unix compatibility toolchain such as MinGW+MSYS or Cygwin.
Run Code Online (Sandbox Code Playgroud)
我确实有MinGW,实际上是与GHC一起分发的MinGW。
我还将bin文件夹添加到了PATH中。
我怎样才能解决这个问题?实际运行配置文件的工具是什么?也许我需要得到它?
使用Cabal库的1.22.0.0
版本的GHC 7.10.1 x64 cabal安装版本1.22.0.0
。
而且我实际上是在Windows 10专业版预览版内部版本10130上。我在7和8.1上做了很多时间,但从未实现。我无法想象为什么,但是也许它起了作用?
Win32 API是否提供了从proc内部检索WindowProc当前正在处理的structMSG值的任何方法?
PS我不能使用像静态的臭名昭着的全局结构,它肯定会在以后咬我.
如果它是相关的,我需要的原因是将消息泵送到其他处理程序(我只知道在运行时)进行实际处理,并且我不想丢失任何数据,只要我能帮助它.
好吧,我是初学者,所以..是的,这可能是一个非常愚蠢的问题.我读到如果我声明变量或对象,而不提及access-modifier(public,private等),而不是自动使其具有Internal acess修饰符(并且它将存在于当前命名空间中的任何位置).
那么为什么我需要在类中将我的变量设置为Public以将它们放在另一个类中(例如我的程序类).
textBlock.Text = "Text";
Run Code Online (Sandbox Code Playgroud)
这是我的代码,它没有显示任何错误.但是当我运行它时,我得到了一个NullReferenceException
Object reference not set to an instance of an object.
Run Code Online (Sandbox Code Playgroud)
这个语句在Slider的ValueChanged事件中,如果重要的话.
我正在做一个询问你姓名的活动,如果输入了一个数字,它应该告诉输入是无效的.
这是我的代码:
try {
Console.Write("Enter your first name: ");
string fname = Console.ReadLine();
Console.Write("You're Name is: " + fname);
}
catch (Exception) {
Console.Write("INVALID NAME");
}
Run Code Online (Sandbox Code Playgroud)
样本输出:
Enter you're first name: 123hjay
INVALID NAME!!
Run Code Online (Sandbox Code Playgroud)
我知道我的例外是错的; 我需要你的帮助.
我正在使用一个C函数,我将一个(回调)函数传递给它,并且每次使用不同的参数调用它.
我将它导入Haskell,现在我有类似的东西(我当然简化了它):
countToFive :: (Int -> IO ()) -> IO ()
countToFive fn = do fn 1; fn 2; fn 3; fn 4; fn 5
Run Code Online (Sandbox Code Playgroud)
我想列出传递给的每个号码fn; 有这个签名的东西:
counting :: IO [Int]
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,将(当然执行IO)的结果[1,2,3,4,5].
命令式方法counting是创建一个可变列表,并countToFive使用一个函数调用,该函数在每次调用时将参数插入到可变列表中,然后返回列表.
什么是功能性的方法呢?
每当我调用一个函数来交换缓冲区时,我都会glDebugMessageCallback说出很多错误:
glVertex2f已从OpenGL Core上下文(GL_INVALID_OPERATION)中删除
我已经尝试过同时使用GLFW和freeglut,但都无法正常工作。
我glVertex2f当然没用过。我什至甚至删除了所有渲染代码,以查看是否可以找到导致该问题的原因,但是错误仍然存在,就在glutSwapBuffers/ 之后glfwSwapBuffers。
使用单缓冲也不会导致任何错误。
我已经将上下文初始化为4.3,核心配置文件,并标记了前向兼容性。
c# ×4
haskell ×4
c++ ×3
ghc ×2
c ×1
cabal ×1
callback ×1
class ×1
database ×1
exception ×1
f# ×1
freeglut ×1
glfw ×1
glut ×1
immutability ×1
inline ×1
memory-leaks ×1
mingw ×1
oop ×1
opengl ×1
optimization ×1
performance ×1
public ×1
string ×1
text ×1
textblock ×1
winapi ×1
windows ×1
wndproc ×1
wpf ×1
xml ×1