我有一个简单的程序,目前根据valgrind产生一些内存泄漏,我不知道为什么:
char *filename = strrchr(argv[3], "/") + 1;
file = fopen(fileName, "w");
Run Code Online (Sandbox Code Playgroud)
据我所知,我给程序一个argv [3]的"test/test2",第一行找到最后一次出现的"/",然后向前移动一个字符(到"t").然后第二行打开一个文件,该文件是char数组"test"的指针.
为什么会导致内存泄漏?
假设我有一个名为 Scope 的类,它有一个名为 Variable 的嵌套类,我到底如何使用它javap -s来获取内部类的 JNI 签名?我试过做
javap -classpath <classpath> -s Scope$Variable
,但这似乎不起作用。它似乎只是给我提供了相同的信息,就像我只输入“Scope”而不是“Scope$Variable”一样。
谢谢你的帮助
我目前有一个带有视图的eclipse插件.在src foler中,有一个icons文件夹,其中包含我想在我的插件中使用的一些图像.在我的程序中,我使用如下行:
public static final Image anImage = new Image(null, "sample_image.gif");
Run Code Online (Sandbox Code Playgroud)
然后继续在某处使用该图像.当我在本地运行我的程序时,这工作,但当我将我的插件导出到jar,然后将其安装到新的Eclipse时,插件就会中断.当我在代码中取出图像使用时,插件在没有图像的情况下正常工作.我想知道正确的方法是为了让我的图像在导出的jar文件中可用于插件安装.
我有一个先前的问题和类似于这个的问题,有人建议使用Classloader.getResource().我没有太多的运气试图让它工作,似乎没有必要,因为默认情况下,如果您使用PDT生成的Eclipse视图插件演示模板,它附带一个图标文件夹,使用" sample.gif",据我所知,工作正常.
谢谢你的任何建议.
假设我有一个对象,其目的是为对象类型MyObject保存一堆指针,并且假设我想要一个将新的MyObjects添加到集合中的函数,如下所示:
void MyCollection::addObject(){
MyObject *newObject = new MyObject();
MyCollection.add(mycollection, newObject);
}
Run Code Online (Sandbox Code Playgroud)
让我们说MyCollection.add接受一个特定的集合对象和一个指针,并以某种方式在内部存储它.但是这个函数的问题是当newObject本身是持久的时,*newObject指针在函数调用之后被销毁,所以add()函数不再有一个真正指向该对象的指针.是否有任何好方法以某种方式制作持久性指针?
谢谢
java ×2
c ×1
c++ ×1
command-line ×1
eclipse ×1
fopen ×1
image ×1
memory ×1
memory-leaks ×1
valgrind ×1