小编KWJ*_*104的帖子

Stack vs Heap C++

我刚才有一个关于堆栈变量与堆变量如何工作的快速问题.据我了解,堆栈变量是函数返回后的变量,并且堆变量是持久的.但我真正感到困惑的是如何在函数内部分配堆变量:

int MyObject::addObject(const char* a){
    MyObject newObject(a);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

说我有一个构造函数MyObjectnewObject(const char * a).然后在这个函数调用它时,返回之后新构造的newObjectget被删除了吗?如果是,那么如何在函数内分配到堆呢?如果没有,你如何在以后清理你的记忆?

此外,析构函数的作用究竟是什么?何时被称为?

c++ memory-management

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

如何使用EasyMock测试void方法

我已经看到了一些关于此的问题,但我似乎无法理解我的特定问题的任何答案.

我有一个模拟对象,让我们调用"object1",我发送给一些方法进行测试,让我们调用testMethod().所以我最终打电话了

testMethod(object1);
Run Code Online (Sandbox Code Playgroud)

用于检测.现在,在这个testMethod的某个地方,将会有一个调用方法的部分

object1.toggleDisplay();
Run Code Online (Sandbox Code Playgroud)

这是一种无效方法.如果方法是这样的

object1.getDisplay()
Run Code Online (Sandbox Code Playgroud)

实际上它返回的地方,我通常会这样做

EasyMock.expect(object1.getDisplay()).andReturn(whatever);
Run Code Online (Sandbox Code Playgroud)

但是,这是一个无效方法,我想测试一下,确实已经调用了一定次数.最简单的方法是什么?

谢谢

java junit unit-testing easymock

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

改变JUNG中顶点的大小/颜色

如何更改Jung Visualization Library中特定顶点的大小?

我正在阅读文档,但我不是非常熟悉java,我找不到任何好的例子.

java graph jung

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

编写自定义eclipse调试器

编辑:必须有一些方法可以在不编写全新调试器的情况下实现此目的.我目前正在研究在现有java调试器之上构建的方法.如果有人对如何获取Java调试器已有的信息有任何想法(关于堆栈帧,变量,原始数据等),那将非常有用.

-

我想要做的是我有这个基于Java的框架/ API,我想编写一个为我的框架定制的eclipse插件调试器.这是一个简单的例子:

我有两个类,一个叫做范围,一个叫做变量.范围包含变量图.代码全部都在java中,但我使用这个范围变量关系几乎就像一种新语言,并且想要一个变量调试选项卡,它给出了当前活动范围的列表,其中包含当前存储的变量.这是一些代码:

import java.util.Hashtable;

public class Scope {
    private Hashtable<String, Variable> variableList = new Hashtable<String, Variable>();

   // constructor 
    public Scope(){

    }

    public void put(String key, Variable v){
        variableList.put(key, v);
    }

    public Variable get(String key){
        return variableList.get(key);
    }


}

public class Variable {

    private String value;
    private String name;

    public Variable(String aName, String aValue){
        name = aName;
        value = aValue;
    }

    public String getValue(){
        return value;
    }

    public String getName(){
        return name;
    }

    public void setValue(String aValue){ …
Run Code Online (Sandbox Code Playgroud)

java eclipse debugging eclipse-plugin

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

如何使用javap

我必须做一些愚蠢的事情,因为这似乎是一个简单的操作.出于某种原因,我无法让这个命令为我工作.我已经安装了JDK,我进入了

/bin
Run Code Online (Sandbox Code Playgroud)

夹.我键入:

./javap -classpath /home/Matt/workspace/VariablesTestProject/src/ -s VariablesTest.Variable
Run Code Online (Sandbox Code Playgroud)

我的实际文件路径是

/home/Matt/workspace/VariablesTestProject/src/VariablesTest/Variable.java
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

ERROR:Could not find VariablesTest.Variable
Run Code Online (Sandbox Code Playgroud)

这样的命令有效:

./javap -s java.lang.String
Run Code Online (Sandbox Code Playgroud)

这些不是我尝试过的唯一命令.我真的尝试了我能想到的每一个变化,但没有一个能起作用.我的javac和java命令都工作正常.

有什么建议?

java java-native-interface command-line

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

访谈:关于人员匹配

我最近看到一个公司的面试问题说:

一群人,你可以打电话Know(i, j)询问是否i有人知道j,返回值是true(i知道j)或false(i不知道j).找到其他人都认识的人,但他不认识任何人.

我可以想到一个O(N^2)实现,这样你就可以将每个人与每个人的方法相匹配,从而消除任何真正认识某人的人.然而,我想不出比这更快的实现.

任何人都可以提供帮助或提示吗?

language-agnostic algorithm

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

完美的哈希函数

我最近得到了一个功课,询问是否给出一个键列表,可以制作一个没有任何冲突的哈希函数.做了一些研究,我发现给定一个预订的键列表,可以实现完美的哈希函数.

但是,我不太清楚该说些什么.任何人都可以给我一些关于如何完成哈希函数的建议,或者给一个预定义列表确实给哈希函数创建者做了什么,它允许一个完美的函数?

谢谢你的帮助.

hash function data-structures

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

strstr不起作用

如果我输入"test",为什么这段特殊的代码在strstr()上返回false?

char input[100];

int main()
{
    fgets(input, 100, stdin);
    printf("%s", input);

    if(strstr("test message", input))
    {
        printf("strstr true");

    }


}
Run Code Online (Sandbox Code Playgroud)

我以为strstr在第一个参数中搜索了第二个参数的实例?当我用一些文本替换输入或直接分配它时,它可以工作,但它似乎不适用于fgets.

c input fgets strstr

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

如何从fgets中检测空字符串

我试图将stdin的fgets输入检测为空(当我按下enter而不输入任何内容时).这是我的计划:

int main()
{
    char input[1000];
    printf("Enter :");
    fgets(input, 1000, stdin);
    input[strlen(input) - 1] = '\0';

    if(input != '\0'){
        printf("hi");
    }

    return 0;

}
Run Code Online (Sandbox Code Playgroud)

我想做某种条件,使它不打印任何东西,但显然这种方式是不对的.我也试过NULL,这没用.

谢谢!

c input fgets

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

直接映射缓存命中/丢失

如果这是错误的堆栈交换,我很抱歉; 它似乎是最接近一个可能对计算机体系结构有帮助的地方.对于计算机系统中的家庭作业问题,我被问到:

Consider three direct mapped caches X, Y, and Z each interpreting an
8-bit address slightly differently according to the {tag:setIdx:byteOffset}
format speci?ed. For each address in the reference stream, indicate whether the
access will hit (H) or miss (M) in each cache.

                  C1       C2     C3
Address Formats: {2:2:4} {2:3:3} {2:4:2}

Address References in Binary: 00000010, 00000100...
Run Code Online (Sandbox Code Playgroud)

我应该说每个地址引用是否会导致命中或错过,但我不知道从哪里开始.

对于格式,我认为标签意味着高速缓存块中数据的标记,setIdx意味着用于表示高速缓存中不同块的位数,而偏移量是可以选择的块内的特定字节.

我觉得我不明白什么是打击或错过.我认为有三种类型:强制,容量和冲突.如果我不知道缓存中已有什么,我怎么知道哪个是强制性的错过?在给定标签格式的情况下,如何判断缓存的容量?

感谢任何提示或提示.

memory caching computer-architecture

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