小编ber*_*zie的帖子

多维数组的指针如何在C中工作

我在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)

c pointers multidimensional-array

4
推荐指数
1
解决办法
386
查看次数

Scala Swing 组件对齐

我正在学习如何使用 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)

结果:

在此输入图像描述

先谢谢了。

scala scala-swing

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

Erlang Bit语法:它如何知道它是3个组件?

我一直在读关于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)

谢谢你.

erlang bit-manipulation

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

Scala中的模式匹配函数调用

我最初在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)

functional-programming scala

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