我在C中尝试指向多维数组的概念.假设我想通过函数处理多维数组.代码有点像这样:
#include <stdio.h>
void proc_arr(int ***array)
{
// some code
}
int main(int argc, char **argv)
{
int array[10][10];
for(int i = 0; i < 10; i++)
{
for(int j = 0; j < 10; j++)
{
array[i][j] = i * j;
}
}
proc_arr(&array);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我想进入array内部时proc_arr,我不能.根据我的理解,我们应该这样访问它:
void proc_arr(int ***array)
{
(*array)[0][1] = 10;
}
Run Code Online (Sandbox Code Playgroud)
因此,我决定array告诉编译器我想转到该地址并获取值.但不知何故,它崩溃了.我已经尝试了几种组合*和括号,仍然无法使其工作.我很确定这是因为我不理解指针和指针指针.
哦,我注意到如果我们使用char **(字符串数组)也是不同的,就像argv和envp一样.但是对于envp,我可以以某种方式访问它(*envp).为什么?
这是促使envp(和工作)的函数:
int envplen(char ***envp)
{
int count = …Run Code Online (Sandbox Code Playgroud) 我正在学习如何使用 Scala 上的标准 Swing 小部件构建 GUI。这就是我想做的:

我成功地创建了组件,但未能对齐它。我的所有组件都居中对齐,不像我想要的那样(Button1 在左侧,table 在中心,button2 在右侧)。我也找不到太多关于 Scala 的 Swing 的信息。大多数搜索结果都是关于Java的(我对此一无所知)。我应该做什么来强制对齐?
这是代码:
ontents += new BoxPanel(Orientation.Vertical) {
contents += new Button("Button 1")
contents += new Table(3, 3)
contents += new Button("Button 2")
}
Run Code Online (Sandbox Code Playgroud)
结果:

先谢谢了。
我一直在读关于Erlang的书,以评估它是否适合我的项目,并且结合了" 学习你的一些Erlang for Great Book"的位语法部分.
简单地说,这是代码:
1> Color = 16#F09A29.
15768105
2> Pixel = <<Color:24>>.
<<240,154,41>>
Run Code Online (Sandbox Code Playgroud)
令我困惑的是:Color变量是24位,但Erlang怎么知道它必须将变量(第2行)分成三段?该规则如何阅读?
我试着阅读本章的其余部分,但它越来越让我感到困惑,因为我不明白它如何划分数字.你能解释一下bit语法是如何工作的吗?怎么知道它是3段,<<154, 41>>当我这样做时它怎么会变成:
1> Color = 16#F09A29.
15768105
2> Pixel = <<Color:16>>.
<<154,41>>
Run Code Online (Sandbox Code Playgroud)
谢谢你.
我最初在CodeReview上发布了这个问题,但它似乎并不适合.我会在这里重新开始.请告诉我它是否也适合这里,我应该在哪里发布这类问题.谢谢.
我是Scala和函数式编程的新手.我想多次调用一个函数,并结合基于两个变量的参数.基本上,我现在正在做的是:
def someFunction(a: Int, b: Int): Future[Int] = ???
val value1 = true
val value2 = false
(value1, value2) match {
case (true, true) =>
val res1 = someFunction(0, 0)
val res2 = someFunction(0, 1)
val res3 = someFunction(1, 0)
val res4 = someFunction(1, 1)
for {
r1 <- res1
r2 <- res2
r3 <- res3
r4 <- res4
} yield r1 + r2 + r3 + r4
case (true, false) =>
val res1 = someFunction(0, 0) …Run Code Online (Sandbox Code Playgroud)