小编Ail*_*lyn的帖子

int*和Type*之间有区别吗?

我在C中实现一个队列.我有一个像这样的结构:

struct Node {
    Node* next;
    Node* previous;
    // data
}
Run Code Online (Sandbox Code Playgroud)

因为next并且previous只是指针,如果我使用Node*或者它会有所作为int*吗?例如:

struct Node {
    int* next;
    int* previous;
    // data
}
Run Code Online (Sandbox Code Playgroud)

c pointers

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

Python中的方程求解器

给出一个简单的等式,例如:

x = y + z
Run Code Online (Sandbox Code Playgroud)

如果你绑定另外两个变量,你可以获得第三个变量(即:y = x - zz = x - y).将其放入代码中的简单方法:

def solve(args):
    if 'x' not in args:
        return args['y'] + args['z']
    elif 'z' not in args:
        return args['x'] - args['y']
    elif 'y' not in args:
        return args['x'] - args['z']
    else:
        raise SomeError  
Run Code Online (Sandbox Code Playgroud)

我显然可以采用一个等式,解析它并简化它以达到同样的效果.但我相信这样做会重新发明轮子.那么我现成的车轮在哪里?

python parsing equation-solving

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

在C++中创建一个<char>集合

我正在编写这个东西,static const set<char>包含一些不会改变的元素会很有帮助.

class MyClass {
     private:
         static const set<char> mySet = ??  
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?如果您可以从字符串创建它们会很好mySet("ABC"),但是我无法使语法工作.

c++ initialization

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

malloc灾难性地失败了

我正在尝试在C中实现Queue.来自Java和其他托管语言,我真的在努力进行内存管理.这是enqueue()功能:

int enqueue(Queue q, int value) {

    Node newNode = malloc(sizeof(Node));
    /*newNode->value = value;

    if (q->size == 0)
        q->head = newNode;
    else
        q->head->next = &newNode;

    q->size++;*/
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

malloc.c:3096: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & …
Run Code Online (Sandbox Code Playgroud)

c malloc struct

0
推荐指数
3
解决办法
955
查看次数

我应该在"其他"中包装递归步骤吗?

可能重复:
否则或返回?

考虑典型的递归函数:

public int Fact(n) 
{
    if (n < 2)
    {
        return 1;
    }
    else
    {
        return n * Fact(n-1);
    }
}
Run Code Online (Sandbox Code Playgroud)

以这种方式写这种方式之间有什么区别?:

public int Fact(n) 
{
    if (n < 2)
    {
        return 1;
    }

    return n * Fact(n-1);
}
Run Code Online (Sandbox Code Playgroud)

我更喜欢后者,特别是当递归步骤由许多代码行组成时.我不想添加不必要的缩进.

是否存在实际差异,或者这仅仅是一种风格偏好?

c# recursion coding-style

0
推荐指数
1
解决办法
347
查看次数