小编cha*_*par的帖子

什么是libtool的.la文件?

libtool的.la文件是什么?它们如何与共享对象一起使用?

linux libtool libraries

143
推荐指数
3
解决办法
10万
查看次数

如何找出从共享对象导出的所有符号?

我有一个共享对象(DLL).如何找出从中导出的所有符号?

linux shared-libraries

123
推荐指数
7
解决办法
16万
查看次数

为什么offsetof()的实现有效?

在ANSI C中,offsetof定义如下.

#define offsetof(st, m) \
    ((size_t) ( (char *)&((st *)(0))->m - (char *)0 ))
Run Code Online (Sandbox Code Playgroud)

为什么这不会引发分段错误,因为我们正在取消引用NULL指针?或者这是某种编译器黑客,它看到只有偏移的地址被取出,所以它静态地计算地址而不实际解除引用它?这个代码也可以移植吗?

c pointers offsetof

32
推荐指数
4
解决办法
2481
查看次数

如何在字符串中重复一次字符n次?

我正在学习Perl,所以请耐心等待我这个noob问题.

如何在字符串中重复一次字符n次?

我想做类似下面的事情:

$numOfChar = 10;

s/^\s*(.*)/' ' x $numOfChar$1/;
Run Code Online (Sandbox Code Playgroud)

perl

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

堆溢出攻击

如何进行堆溢出攻击?

在stackoverflow攻击的情况下,攻击者用他的地址替换函数返回地址.

这是如何在堆溢出攻击中完成的?此外,是否可以从堆运行代码?

security buffer-overflow

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

长期在32位机器上实现

根据c99标准,大小long long应至少为64位.如何在32位机器中实现(例如,2 long longs的加法或乘法).另外,long longC++中的等价物是什么.

c c++

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

Perl中单引号和双引号之间的区别是什么?

在Perl中,'和之间有什么区别"

例如,我有2个变量,如下所示:

$var1 = '\(';
$var2 = "\(";

$res1 = ($matchStr =~ m/$var1/);
$res2 = ($matchStr =~ m/$var2/);
Run Code Online (Sandbox Code Playgroud)

$res2声明抱怨说Unmatched ( before HERE mark in regex m.

string perl

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

取消引用整数数组的指针

我有一个指向10的整数数组的指针.取消引用这个指针应该给我什么?

例如:

#include<stdio.h>

main()
{
    int var[10] = {1,2,3,4,5,6,7,8,9,10};
    int (*ptr) [10] = &var;

    printf("value = %u %u\n",*ptr,ptr);  //both print 2359104. Shouldn't *ptr print 1?


}
Run Code Online (Sandbox Code Playgroud)

c pointers

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

Vim关键字完成

如何告诉Vim编辑器我的包含文件路径,以便在按CTRL+ 时它可以自动完成功能名称N

例如,我有一个如下的C程序:

#include<stdio.h>
int main()
{
    sca // here I press control+N, it does not complete to scanf
}
Run Code Online (Sandbox Code Playgroud)

c vim

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

为什么.*消耗这个Perl正则表达式中的整个字符串?

为什么第一个print语句没有输出我期望的内容:

first = This is a test string, sec = This is a test string 
Run Code Online (Sandbox Code Playgroud)

由于*和+都是贪婪的,为什么内部*即在"("中的第一个匹配中不消耗整个字符串?

use strict;
use warnings;

my $string = "This is a test string";
$string =~ /((.*)*)/; 
print "first = $1, sec = $2\n";  #prints "first = This is a test string, sec ="

$string =~ /((.+)*)/;
print "first = $1, sec = $2\n";  #prints "first = This is a test string, sec = This is a test string"
Run Code Online (Sandbox Code Playgroud)

regex perl

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