小编Mas*_*tic的帖子

如何判断是否删除函数返回的指针

考虑一个返回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)

取消分配此指针会使整个程序崩溃.

提前致谢.

c++ memory-leaks

2
推荐指数
2
解决办法
356
查看次数

如何通过它的属性读取单个XML节点?

我的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# xml database

1
推荐指数
2
解决办法
538
查看次数

应该何时内联函数(性能方面)?

我亲眼目睹了提及内联的帖子,使得他们的软件运行得更快[例如].
这让我很奇怪,我什么时候应该为性能进行内联功能?

此外,C++内联的相同指南是否适用?

注意:
我不是在问什么时候(显然需要的时候),或者为什么,我问的是,如果我碰巧遇到瓶颈,内联什么时候会有用?

optimization performance f# inline

1
推荐指数
1
解决办法
157
查看次数

请推荐使用模式匹配的解释语言

我正在寻找一种易于快速编写脚本的解释语言,如但它具有更多的Haskell感觉(即一种函数式语言).

具体来说,我希望它具有像haskell一样的模式匹配功能.这样的事情存在吗?

编辑:我主要问,因为我喜欢学习新语言,我注意到我学习的语言中有空位.
一方面,我已经解释并动态地输入了具有功能元素的Python和Ruby等语言,但并没有把这个概念放得太过分.
另一方面,我有Haskell,它具有我喜欢的许多功能特性,但是非常严格(我需要花费相当多的时间来完成简单的程序).
我只是想知道是否存在分裂这些差异的东西.

haskell functional-programming scripting-language interpreted-language pattern-matching

1
推荐指数
1
解决办法
321
查看次数

有没有安全的方法在IO中生成惰性列表?

我想有一个懒惰生成的随机数列表,我设法做到但是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)

有没有安全的方法来实现这种价值观?

haskell lazy-evaluation

1
推荐指数
1
解决办法
132
查看次数

在GHC的RTS统计数据中,CPU时间如何低于挂钟时间?

我有一个程序链接-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时间?如果它没有,那可能是原因,有大量的写作.

haskell ghc

1
推荐指数
1
解决办法
123
查看次数

阴谋安装错误:软件包具有“ ./configure”脚本。这需要一个Unix

我正在尝试安装networkold-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上做了很多时间,但从未实现。我无法想象为什么,但是也许它起了作用?

mingw ghc cabal

1
推荐指数
1
解决办法
1646
查看次数

如何从我的WindowProc中获取MSG值?

Win32 API是否提供了从proc内部检索WindowProc当前正在处理的structMSG值的任何方法?

PS我不能使用像静态的臭名昭着的全局结构,它肯定会在以后咬我.
如果它是相关的,我需要的原因是将消息泵送到其他处理程序(我只知道在运行时)进行实际处理,并且我不想丢失任何数据,只要我能帮助它.

c c++ windows winapi wndproc

1
推荐指数
1
解决办法
72
查看次数

C#:为什么我必须在类的变量中使用公共访问修饰符?

好吧,我初学者,所以..是的,这可能是一个非常愚蠢的问题.我读到如果我声明变量或对象,而不提及access-modifier(public,private等),而不是自动使其具有Internal acess修饰符(并且它将存在于当前命名空间中的任何位置).

那么为什么我需要在类中将我的变量设置为Public以将它们放在另一个类中(例如我的程序类).

c# oop class public access-modifiers

0
推荐指数
1
解决办法
204
查看次数

设置WPF的Textblock.Text属性会抛出NullReferenceException

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事件中,如果重要的话.

c# wpf text textblock

0
推荐指数
1
解决办法
6835
查看次数

String FormatException

我正在做一个询问你姓名的活动,如果输入了一个数字,它应该告诉输入是无效的.

这是我的代码:

 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# string exception

0
推荐指数
1
解决办法
165
查看次数

将回调值累积到列表中的函数方法是什么?

我正在使用一个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使用一个函数调用,该函数在每次调用时将参数插入到可变列表中,然后返回列表.

什么是功能性的方法呢?

haskell functional-programming callback immutability

0
推荐指数
1
解决办法
254
查看次数

与核心配置文件交换缓冲区使用无效的操作

每当我调用一个函数来交换缓冲区时,我都会glDebugMessageCallback说出很多错误:

glVertex2f已从OpenGL Core上下文(GL_INVALID_OPERATION)中删除

我已经尝试过同时使用GLFW和freeglut,但都无法正常工作。

glVertex2f当然没用过。我什至甚至删除了所有渲染代码,以查看是否可以找到导致该问题的原因,但是错误仍然存​​在,就在glutSwapBuffers/ 之后glfwSwapBuffers
使用单缓冲也不会导致任何错误。

我已经将上下文初始化为4.3,核心配置文件,并标记了前向兼容性。

c++ opengl glut freeglut glfw

0
推荐指数
1
解决办法
251
查看次数