小编Dav*_*rts的帖子

指针和方括号

我在解析这行代码时遇到了困难:

int *a=new int[N];
Run Code Online (Sandbox Code Playgroud)

因此,这声明了一个名为"a"的新整数指针,无论它指向何处,都会存储一个指向大小(int + N)对象的新指针.这是因为

int[N]:=*(int+N)
Run Code Online (Sandbox Code Playgroud)

这个问题是N是类size_t的一个实例,那么添加有什么意义呢?完整代码如下:

int main()
{
const std::size_t N = 100;
int* a = new int[N];

for (std::size_t n = 0; n < N; ++n)
    a[n] = n;

delete[] a;
}
Run Code Online (Sandbox Code Playgroud)

c++ pointers

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

为什么os.system()在放入for循环时不会运行?

我有以下(伪)代码:

import os

for s in settings:
    job_file = open("new_file_s.sh", "w")
    job_file.write("stuff that depends on s")
    os.system(command_that_runs_file_s)
Run Code Online (Sandbox Code Playgroud)

不幸的是,发生的事情是对应的文件s = settings[0]没有执行,但随后s = settings[1]执行.显然,os.system()不喜欢运行最近使用的文件open(),特别是在for循环的同一次迭代中.

对我来说,修复是确保os.system()在for循环的先前迭代中初始化任何执行的文件:

import os

# Stagger so that writing happens before execution:
job_file = open("new_file_settings[0].sh", "w")
job_file.write("stuff that depends on settings[0]")

for j in range(1, len(settings)):
    job_file = open("new_file_settings[j].sh", "w")
    job_file.write("stuff that depends on settings[j]")

    # Apparently, running a file in the same iteration of a for loop is …
Run Code Online (Sandbox Code Playgroud)

python subprocess os.system

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

标签 统计

c++ ×1

os.system ×1

pointers ×1

python ×1

subprocess ×1