小编Gre*_*ill的帖子

记忆和指针

我需要一些关于任务的一些帮助.

我的任务是创建一个内存区域

void *memory = malloc(320);
Run Code Online (Sandbox Code Playgroud)

然后使用指针将文本存储到这个存储位置:我们想将这个区域划分为32个字节的数据块,母猪我们可以存储:320/32 = 10个数据块,32个字节.在一个数据块中,我可以存储(1个ASCSII char = 1个字节)32个字符.

我有一个10位的位图,其中每个位指示是否使用数据块(1)或不使用(0).

但是,如果我想存储长度为60个字符的文本呢?然后我需要2个数据块(2 x 32字节).位图显示数据块2和6是空闲的,1和6不是并排的.我怎样才能做到这一点?

struct  data {
    char * text;
};

typedef struct data d;

d->text = ???
Run Code Online (Sandbox Code Playgroud)

c memory pointers heap-fragmentation

5
推荐指数
1
解决办法
255
查看次数

在字典理解中使用locals()

下面的代码不起作用,我假设因为理解中的locals()变量将引用嵌套块,其中评估了理解:

def f():
    a = 1
    b = 2
    list_ = ['a', 'b']
    dict_ = {x : locals()[x] for x in list_}
Run Code Online (Sandbox Code Playgroud)

我可以使用globals(),它似乎工作,但这可能会带来一些额外的问题(例如,如果有一个来自周围范围的变量恰好具有相同的名称).

有没有什么能使字典在函数范围内精确地使用变量f

注意:我这样做是因为我有许多变量,我希望稍后将其放入字典中,但不希望通过编写dict_['a']而不是a在此期间使代码复杂化.

python list-comprehension python-3.x

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

在Erlang中创建列表

来自Cesarini的"Erlang编程"练习3-2

当我通过"Erlang编程"时,我得到了奇怪的列表创建问题.从练习3-2开始,我写了两个类似的功能.

create( 0 ) -> [];
create( N ) when N > 0 -> [ N | create( N-1 ) ].

reverse_create( 0 ) -> [];
reverse_create( N ) when N > 0 -> [ reverse_create( N-1 ) | N ].
Run Code Online (Sandbox Code Playgroud)

所以create(3)就像我期望的那样生成.

exercise3:创建(3).
[3,2,1]

但是reverse_create不会生成我期望的列表.

exercise3:reverse_create(3).
[[[[] | 1] | 2] | 3]

我需要更改什么才能使reverse_create(3)返回[1,2,3]?谢谢你的解释.

erlang reverse list

5
推荐指数
1
解决办法
4800
查看次数

如何在 C 中将字符串传送到 popen() 命令中?

我在uni中使用c(或多或少是第一次)工作,我需要从字符数组生成MD5。该分配指定这必须通过创建管道并md5在系统上执行命令来完成。

我已经走到这一步了:

FILE *in;
extern FILE * popen();
char buff[512];

/* popen creates a pipe so we can read the output
 * of the program we are invoking */
char command[260] = "md5 ";
strcat(command, (char*) file->name);
if (!(in = popen(command, "r"))) {
    printf("ERROR: failed to open pipe\n");
    end(EXIT_FAILURE);
}
Run Code Online (Sandbox Code Playgroud)

现在这工作得很好(对于作业的另一部分,需要获取文件的 MD5),但我无法弄清楚如何将字符串通过管道传输到其中。

如果我理解正确的话,我需要做类似的事情:

FILE * file = popen("/bin/cat", "w");
fwrite("hello", 5, file);
pclose(file);
Run Code Online (Sandbox Code Playgroud)

我认为,它将执行 cat,并通过 StdIn 将“hello”传递给它。这是正确的吗?

c unix md5 popen

5
推荐指数
1
解决办法
2693
查看次数

将链表拆分为2个包含最小和最大数字的偶数列表

给定一个按随机顺序排列的整数列表,将其拆分为两个新的链表,这样每个列表元素总和的差异最大,列表长度相差不超过1(在原始情况下) list有奇数个元素). 我不能假设列表中的数字是唯一的.

我想到的算法是在原始链表(O(n·log n)时间,O(n)空间)上进行合并排序,然后使用递归函数走到列表末尾以确定其长度,在递归函数展开时进行拆分.递归函数是O(n)时间和O(n)空间.

这是最佳解决方案吗?如果有人认为它是相关的,我可以发布我的代码.

java algorithm data-structures

5
推荐指数
1
解决办法
1302
查看次数

Scons AddPostAction导致依赖性检查错误解决方法

在scons中,我试图建立一个UnitTest系统(见下面的代码),基于这里的一个很好的例子:http://spacepants.org/blog/scons-unit-test

然而,由于最近的scons 2.0.1及更新版本中存在问题,这会产生依赖性循环,如下所述:http://old.nabble.com/AddPostAction-executes-on-first-build-but-not-subsequent- td18360675.html(和其他地方).

有谁知道这个问题的良好解决方案或替代解决方案?

码:

def UnitTest(env, target, source, **kwargs):
  curTest = env.Program(target, source, **kwargs)
  env.AddPostAction(curTest, curTest[0].abspath)
  env.Alias('unit_tests', curTest)
  env.AlwaysBuild(curTest)
  return curTest

SConsEnvironment.UnitTest = UnitTest

mandolineTest = env.UnitTest(target='./codeTest',
  source = mix(['test.cc', 'base.cc'),
  LIBS = default_libs + ['bgl',],
  LIBPATH = default_libs_path, 
  CPPPATH = default_includes )
Run Code Online (Sandbox Code Playgroud)

scons unittest++

5
推荐指数
1
解决办法
712
查看次数

即使统计信息可能未更改,如何使git检查每个文件的内容?

我使用git将代码分发到嵌入式系统。有时文件损坏而未更改mtime,我想重新检查所有内容。Git通常不会检查统计信息未更改的文件的sha。如何检查?

我尝试过

git -c core.ignorestat=yes reset --hard
Run Code Online (Sandbox Code Playgroud)

但这不起作用。

git

5
推荐指数
1
解决办法
221
查看次数

涉及国际象棋的图算法:k移动中的可能路径

我正在尝试解决涉及国际象棋的算法问题.

假设我在A8中有一个国王,并希望将其移至H1(仅允许移动).我怎样才能找出完成任何给定k移动的可能性(路径)的数量?(例如,如果我想用15次动作将国王从A8移动到H1,会有多少路径/可能性?)

一个简单的解决方案是将其视为图形问题,并使用任何标准路径查找算法将每个移动计算为成本1.因此,假设我想要将我的王从A8移动到H1以10个移动.我只想搜索总计10的所有路径.

我的问题是,如果还有其他更聪明有效的方法吗?我也想知道,如果有更多的"数学"和直接找到这个数字而不是那么"算法"和"蛮力似的"?

algorithm chess graph-algorithm

5
推荐指数
1
解决办法
1987
查看次数

如何检查z3中的const是变量还是值?

只是想知道z3py,我如何检查给定的常量表达式是变量还是值?例如

x = Int('x')
x_ = IntVal(7)
ColorVal, (White,Black)  = EnumSort("ColorVal",["While","Black"])
mycolor = Const("mycolor",ColorVal)
Run Code Online (Sandbox Code Playgroud)

所以x,mycolor都是变量而x_,True,False,White,Black都是值而不是变量.

z3py有is_var谓词,但出于不同的目的.如果我想将公式中的所有变量重命名为其他变量,这将非常有用.

python z3

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

怎么做这个SQL查询?

架构:

Student(studentid,name,age)
Course(coursename,dept)
enroll(studentid,coursename,grade)
Run Code Online (Sandbox Code Playgroud)

我需要编写sql来查找每个年龄组的学生姓名,其中最高分为历史和政治科学系.

到目前为止我的尝试一直是

SELECT 
    name 
FROM 
    student 
GROUP BY age 
HAVING sid IN 
            (
                SELECT 
                    max(grade) 
                FROM 
                    enroll e,enroll e1 
                WHERE 
                    e.studentid = e1.studentid 
                AND e.coursename = (
                                    SELECT coursename FROM course 
                                    WHERE 
                                        dname like '%History%'
                                  ) 
                AND e1.coursename = (
                                    SELECT coursename FROM course 
                                    WHERE 
                                        dname like '%PoliticalScience%'
                                    )
            )
Run Code Online (Sandbox Code Playgroud)

mysql sql

5
推荐指数
1
解决办法
159
查看次数