小编phy*_*ist的帖子

C/C++中非常大的静态数组的算术运算

我是新手,High Performance Computing也是我在这个论坛上的第一个问题,我长期以来一直是读者.

基本上我需要对非常大的数组进行算术运算

double variable [9][4][300][300][300] (uninitialized)
Run Code Online (Sandbox Code Playgroud)

情况1:如果我声明上面的数组local/automatic然后我得到运行时错误如果我编译没有优化 " g++ file.cpp"..(错误是分段错误 - 堆栈溢出???)

情况2:如果我使用优化进行编译,则与上述情况相同,代码按预期运行."g++ -O2 file.cpP"(是arraybss现在???)

情况3:如果我创建变量,global/static那么它编译得很好,但是它不会运行,只是killed在终端上给出一条消息" "并终止.

没有真正的问题,但我很好奇,想要了解声明超大型数组时会发生什么,以及它们根据数据类型驻留在内存中的位置.

我也知道使用malloc或new在运行时生成这些数组的方法.然后当然会在堆上.

所以对我来说最重要的问题是 - >这是在编译g++和运行时处理大型数组时最有效的方法(即计算内存中数组时的最小运行时间)linux clusters.

感谢您耐心等待阅读.

c c++ arrays stack static

6
推荐指数
1
解决办法
837
查看次数

在python中的for循环中修改迭代器

@Padraic Cunningham 如果您想让我删除问题,请告诉我。

我是python的新手。我想根据某些条件跳过一些迭代器值。这在 C 中很容易,但在 python 中我很难。

所以请帮助我理解为什么这里的代码循环 100 次而不是 10 次。

 for i in range(100):
    print i
    i = i +10
Run Code Online (Sandbox Code Playgroud)

编辑:我知道可以选择更改 for 循环的步长。但我对动态更改迭代器变量很感兴趣,就像我们可以在 C 中做的那样。好吧,我明白了,python 中的 for 循环与 C 中的不同。简单的方法是使用 while 循环,我在我的代码中做到了它奏效了。感谢社区!

python

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

一个字节中的位数 - C 标准

为什么像字节中的位数这样基本的东西仍然由 C 标准实现定义?有没有这可能有用的例子?

从 C99,3.6(可在此处链接

3.6 字节

数据存储的可寻址单元足够大,可以容纳执行环境基本字符集的任何成员

注 1:可以唯一地表达对象的每个单独字节的地址。

注 2:一个字节由连续的位序列组成,其数量由实现定义。最低有效位称为低位;最高有效位称为高位。

编辑:我问的是一些基本问题,为什么 C 标准在字节大小的位数方面提供了灵活性。不更具体地询问 sizeof(char) CHAR_BIT != 8 有什么好处。如果问题仍然看起来重复,请否决它,我将关闭问题。

c implementation-defined-behavior

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

assertRaises()在一个引发多个异常的测试用例中

是否可以将assertRaises与多种类型的异常一起使用.就像是

assertRaises(RuntimeError, "error message")
assertRaises(Exception, "exception message")
Run Code Online (Sandbox Code Playgroud)

这两个错误都发生在我的代码中,在同一个调用的不同地方.

我怎么能写一个singel assertRaises语句来处理这两个.

可以想象,当只提到其中一个execptions时,单元测试用例失败.

python unit-testing assertraises

2
推荐指数
1
解决办法
841
查看次数