小编Din*_*esh的帖子

如何将Valgrind的输出重定向到文件?

在使用Valgrind工具时,我需要记录valgrind工具生成的详细信息.我怎么能做到这一点?我尝试过类似的东西,

 valgrind a.out | test
Run Code Online (Sandbox Code Playgroud)

 valgrind a.out > test
Run Code Online (Sandbox Code Playgroud)

它只给出了程序的输出而不是valgrind内存错误,泄漏信息.如果程序不需要用户交互(即提供输入),即使我是这样的.如果程序需要用户输入,即使该东西本身也不起作用.

我怎样才能做到这一点?

redirect valgrind

137
推荐指数
4
解决办法
9万
查看次数

如何递增指针地址和指针的值?

我们假设,

int *p;
int a = 100;
p = &a;
Run Code Online (Sandbox Code Playgroud)

以下代码将实际执行什么以及如何执行?

p++;
++p;
++*p;
++(*p);
++*(p);
*p++;
(*p)++;
*(p)++;
*++p;
*(++p);
Run Code Online (Sandbox Code Playgroud)

我知道,这在编码方面有点混乱,但我想知道当我们这样编码时会发生什么.

注意:让我们假设它的地址a=5120300,它存储在p地址为的指针中3560200.现在,p & a执行每个语句后的价值是多少?

c pointers

79
推荐指数
3
解决办法
21万
查看次数

如何为字符串动态分配内存空间并从用户获取该字符串?

我想用C程序读取用户的输入.我不想使用数组,

char names[50];
Run Code Online (Sandbox Code Playgroud)

因为如果用户给出长度为10的字符串,那么剩余的空间就会被浪费掉.

如果我使用字符指针,

char *names;
Run Code Online (Sandbox Code Playgroud)

那么我需要以这样的方式为它分配内存,

names = (char *)malloc(20 * sizeof(char));
Run Code Online (Sandbox Code Playgroud)

在这种情况下,也存在内存浪费的可能性.

所以,我需要的是为字符串动态分配内存,该字符串与字符串的长度完全相同.

让我们假设,

如果用户输入是"stackoverflow",那么分配的内存应该是14(即字符串的长度= 13和'\ 0'的1个额外空间).

我怎么能实现这个目标?

c string malloc memory-management dynamic

43
推荐指数
4
解决办法
12万
查看次数

strrev()函数在Linux中不可用吗?

我试着用代码编写代码strrev().我包括<string.h>但仍然得到一个"未定义的引用strrev"错误.

我发现strrev()根本没有手册页.为什么?

Linux不支持strrev()吗?

c string

32
推荐指数
3
解决办法
6万
查看次数

如何在使用VI编辑器的UNIX中切换多个文件?

我是UNIX的新手.我正在使用VI编辑器来编写C编程代码.如果我使用VI编辑器一次打开多个文件,

vi *.c
Run Code Online (Sandbox Code Playgroud)

我只能编辑第一个文件.如果我按下":wq",它会显示:"还有6个要编辑的文件"

如何在这些文件之间切换?

unix vi

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

如何将整数转换为void指针?

在使用C语言中的Threads时,我正面临警告

"警告:从不同大小的整数转换为指针"

代码如下

#include<stdio.h>
#include<sys/types.h>
#include<stdlib.h>
#include<pthread.h>
void *print(void *id)
{
 int a=10;
 printf("My thread id is %ld\n",pthread_self());
 printf("Thread %d is executing\n",id);
 return (void *) 42;
}

int main()
{
 pthread_t th[5];
 int t;
 int i;
 int status;
 void *ret;
 for(i=0;i<5;i++)
 {
   status=pthread_create(&th[i],NULL,print,(void *)i); //Getting warning at this line
   if(status)
   {
    printf("Error creating threads\n");
    exit(0);
   }
   pthread_join(th[i],&ret);
   printf("--->%d\n",(int *)ret);
 }
 pthread_exit(NULL);
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释如何将一个整数传递给接收(void*)作为参数的函数吗?

c casting void-pointers

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

为什么我不能忽略SIGSEGV信号?

这是我的代码,

#include<signal.h>
#include<stdio.h>

int main(int argc,char ** argv)
   {
     char *p=NULL;
     signal(SIGSEGV,SIG_IGN); //Ignoring the Signal
     printf("%d",*p);
     printf("Stack Overflow"); //This has to be printed. Right?
   return 0;
    }
Run Code Online (Sandbox Code Playgroud)

在执行代码时,我遇到了分段错误.我使用SIG_IGN忽略了信号.所以我不应该得到分段错误.对?然后,printf()打印'*p'值后的语句也必须执行.对?

c unix signals

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

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

在Netbeans中设置JRE

我的PC上安装了JDK 1.6,JRE6和JRE7(64位和32位).

我使用的是Netbeans 7.3 BETA 2,它使用的是JDK 6和JRE 6.

我想把它改成JRE7.我怎样才能实现这一目标?

我已经检查了Stackoverflow本身,发现我们必须将netbeans.jdkhome值的netbeans.conf文件内容更改为新Java路径的路径.

在另一个stackoverflow问题中,我找到了如何指定在Netbeans中使用哪个JRE?.

但是,在这方面,我也无法找到如何解决这个问题.有人可以帮忙吗?

我的安装路径如下,

JDK6路径 - C:\ Program Files(x86)\ Java\jdk1.6.0_31

JRE6路径 - C:\ Program Files(x86)\ Java\jre6

JRE7路径 - C:\ Program Files(x86)\ Java\jre7(32位)

JRE7路径 - C:\ Program Files\Java\jre7(64位)

提前致谢.

java netbeans

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

如何在选择该表中的任何行后将JTable行设置为"未选定"状态?

我正在开发一个包含a的Java Swing应用程序JTable.默认情况下,在第一次启动应用程序时,调用方法jtable.getSelectedRow()jtable.getSelectedColumn()返回-1,这意味着此时没有选择任何行.用户单击任何行或列后,调用方法jtable.getSelectedRow()jtable.getSelectedColumn()返回所选行和列的相应值.我真正需要的是我想将所选行或列设置为-1,即"没有行或列选择状态".我怎样才能做到这一点?

java swing select jtable

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