小编Gri*_*han的帖子

296
推荐指数
6
解决办法
38万
查看次数

如何无效*a =&合法?

考虑以下C++代码:

void* a = &a;
Run Code Online (Sandbox Code Playgroud)

为什么编译器不抱怨使用未声明的标识符?

此外,编译器认为变量a是什么?它是指向void对象的指针还是指向指针的void*指针?

c++

88
推荐指数
3
解决办法
3462
查看次数

声明切片还是制作切片?

在Golang,var s []int和之间有什么区别s := make([]int, 0)

我发现两者都有效,但哪一个更好?

allocation go slice

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

x + =比x = x + a快吗?

我正在阅读Stroustrup的"The C++ Programming Language",他说有两种方法可以向变量添加内容

x = x + a;
Run Code Online (Sandbox Code Playgroud)

x += a;
Run Code Online (Sandbox Code Playgroud)

他更喜欢,+=因为它最有可能更好地实施.我认为他的意思是它的工作速度也更快.
但它真的吗?如果它取决于编译器和其他东西,我该如何检查?

c++ performance operators

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

在C中扩展结构

我最近遇到了一个同事的代码,看起来像这样:

typedef struct A {
  int x;
}A;

typedef struct B {
  A a;
  int d;
}B;

void fn(){
  B *b;
  ((A*)b)->x = 10;
}
Run Code Online (Sandbox Code Playgroud)

他的解释是,因为它struct A是第一个成员struct B,所以b->xb->a.x提供更好的可读性.
这是有道理的,但这被认为是好的做法吗?这会跨平台工作吗?目前这在GCC上运行良好.

c struct

61
推荐指数
6
解决办法
5337
查看次数

C - %x格式说明符

我有一个小问题.我知道%x格式说明符可用于在格式字符串攻击中从堆栈中读取值.

我找到了以下代码:

%08x%08x%08x%08x
Run Code Online (Sandbox Code Playgroud)

08是什么意思?它到底在做什么?谢谢 :)

c security string format

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

从数组中删除重复的元素

例如,我有一个像这样的数组;

var arr = [1, 2, 2, 3, 4, 5, 5, 5, 6, 7, 7, 8, 9, 10, 10]
Run Code Online (Sandbox Code Playgroud)

我的目的是从数组中丢弃重复元素并获得这样的最终数组;

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Run Code Online (Sandbox Code Playgroud)

如何在JavaScript中实现这一目标?

注意:数组未排序,值可以是任意顺序.

javascript arrays

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

fork()和输出

我有一个简单的程序:

int main()
{
    std::cout << " Hello World";
    fork();
}
Run Code Online (Sandbox Code Playgroud)

程序执行后我的输出是:Hello World Hello World.为什么会发生这种情况而不是单一Hello world?我猜测子进程是在幕后重新运行的,输出缓冲区是在进程之间共享的,还是那些沿着这些进程共享的东西,但就是这种情况还是其他事情发生了?

c++ unix linux fork

56
推荐指数
6
解决办法
4235
查看次数

fopen()中r +和w +之间的差异

fopen("myfile", "r+")什么之间的区别"r+""w+"开放模式?我看了这个:

"r" 打开文本文件进行阅读.
"w"打开文本文件以进行写入,将现有文件截断为零长度,或者创建文件(如果该文件不存在).

"r+"打开文本文件进行更新(即读取和写入).
"w+"打开文本文件以进行更新(读取和写入),首先将文件截断为零长度(如果存在)或创建文件(如果文件不存在).

我的意思是不同的是,如果我打开文件"w+",文件将被删除?

c fopen

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

给定两个数组,找到给出两个数组之间最近距离的排列

假设我有两个长度相同的数组n,名为AB.

这两个数组包含实际值.我们将两个数组之间的距离定义为均方距离.

dist(A,B) = sqrt( sum((A - B)2) )

我想找到A那个给出最小距离的排列B.天真的方法是尝试每个排列A并记录最小距离.然而,这种方法具有复杂性O(n!).

是否存在复杂度小于O(n!)的算法?

algorithm

48
推荐指数
4
解决办法
1933
查看次数