小编que*_*ons的帖子

在C中查找垃圾收集的根

我正在尝试在C中实现一个简单的标记和清除垃圾收集器.算法的第一步是找到根.所以我的问题是如何在C程序中找到根源?

在使用malloc的程序中,我将使用自定义分配器.这个自定义分配器是从C程序调用的所有东西,也可以是自定义的init().

垃圾收集器如何知道程序中的所有指针(根)?另外,给定一个自定义类型的指针,它如何得到所有指针?

例如,如果有一个指向类列表的指针p,其中有另一个指针...说q.垃圾收集器如何知道它,以便它可以标记它?

更新:如果我在启动它时将所有指针名称和类型发送到GC怎么样?类似地,也可以发送不同类型的结构,以便GC可以遍历树.这甚至是一个理智的想法还是我只是疯了?

c garbage-collection boehm-gc gc-roots

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

在两种颜色之间生成n种颜色

我正在尝试编写函数,它可以根据给定的值在两种颜色之间生成颜色.一个例子可以更好地解释它..

输入..

X : 1
Y : 0.5
Z : 0
Run Code Online (Sandbox Code Playgroud)

用户给出任意一color:value对,然后输入一个数字(比如0.75).然后我必须生成颜色,它是Y和Z的比例混合(基于它们的值和输入值).我在考虑以下方法.

  • 找到围绕该值的颜色,对于0.75,它将是0.5和1.
  • 根据值以某种方式混合这两种颜色并生成新颜色.

我完全迷失了,因为如何生成颜色,是否有任何库.

更新:这是我正在开展的更大项目的一部分.让我们说..

1 : X
0 : Y
Run Code Online (Sandbox Code Playgroud)

和用户输入,0.25

我想有点东西..

(X*0.25 + Y*0.75)
Run Code Online (Sandbox Code Playgroud)

因为它更靠近Y,这就是为什么更高的比例.如果用户输入,0.5 ..输出应该是

(X*0.5 + Y*0.5)
Run Code Online (Sandbox Code Playgroud)

等等.我不知道如何用RGB颜色做到这一点.

PS:问题不是特定于语言,而是我在Java中这样做.

java algorithm rgb colors

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

生成的汇编代码是否完整?

我编写了这个简单的C代码,并使用Visual Studio 2010编译它,带有汇编程序输出.

int main(){
    int x=1;
    int y=2;
    int z=x+y;
    return 0;
}  
Run Code Online (Sandbox Code Playgroud)

这是装配输出..

; Listing generated by Microsoft (R) Optimizing Compiler Version 16.00.40219.01 

    TITLE   foobar.cpp
    .686P
    .XMM
    include listing.inc
    .model  flat

INCLUDELIB OLDNAMES

EXTRN   @__security_check_cookie@4:PROC
PUBLIC  _main
; Function compile flags: /Ogtp
; File foobar.cpp
;   COMDAT _main
_TEXT   SEGMENT
_main   PROC                        ; COMDAT

; 2    :    int x=1;
; 3    :    int y=2;
; 4    :    int z=x+y;
; 5    :    return 0;

    xor eax, eax

; …
Run Code Online (Sandbox Code Playgroud)

c assembly gcc visual-studio-2010

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

为什么要使用更高的基数来实现BigInt?

我正在尝试实现BigInt并阅读了一些关于它的线程和文章,其中大多数建议使用更高的基数(256或2 ^ 32甚至2 ^ 64).

为什么更高的基数有利于此目的?

我有的其他问题是我应该如何将字符串转换为更高的基数(> 16).我读过没有标准的方法,除了base64.最后一个问题,我如何使用这些更高的基础.一些例子会很棒.

c c++ biginteger

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

如何为webdriver编写keyDown和keyUp?

我正在尝试为webdriver写一个keyDown和keyUp,类似于selenium.我知道如何使用Actions,但是dint找到了一种编写泛型(用于特殊键和普通键)keyDown函数的方法.

像selenium这样的东西,它接受键码以及键.有任何想法吗?

java webdriver selenium-webdriver

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

NoClassDefFoundError的可能原因

我得到以下内容NoClassDefFoundError,这很奇怪,因为该类已经存在于库jar中.

Exception in thread "main" java.lang.NoClassDefFoundError: abc/test/Test.java
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:795)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:144)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:382)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:75)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:294)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:288)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:287)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:327)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:795)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:144)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:382)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:75)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:294)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:288)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:287)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:327)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:432)
Caused by: java.lang.ClassNotFoundException: abc.test.Test
        at java.net.URLClassLoader$1.run(URLClassLoader.java:299)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:288)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:287)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:327) …
Run Code Online (Sandbox Code Playgroud)

java ant jar build

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

GCC奇怪的链接器错误..适用于Visual Studio 2010

我使用gcc得到这个奇怪的链接器错误,认为我使用Visual Studio时代码工作正常.

/tmp/ccfcdCxg.o: In function `global constructors keyed to main':
codechef_permut2.cpp:(.text+0xa): undefined reference to `std::ios_base::Init::Init()'
codechef_permut2.cpp:(.text+0x19): undefined reference to `std::ios_base::Init::~Init()'
/tmp/ccfcdCxg.o: In function `ambig(unsigned long)':
codechef_permut2.cpp:(.text+0x47): undefined reference to `operator new[](unsigned long)'
codechef_permut2.cpp:(.text+0x52): undefined reference to `operator new[](unsigned long)'
/tmp/ccfcdCxg.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我发布任何代码,因为我觉得它不是必需的,但如果有人觉得我会发布它.

c++ linker gcc visual-studio-2010

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