小编noo*_*bie的帖子

memcpy - 获取临时数组的地址错误

我正在 Arduino 上工作并尝试更改数组的元素。在设置之前,我像这样初始化了数组:

bool updateArea[5] = { false };
Run Code Online (Sandbox Code Playgroud)

然后我想像这样更改数组:

updateArea[0] => false,
updateArea[1] => true,
updateArea[2] => false,
updateArea[3] => false,
updateArea[4] => true
Run Code Online (Sandbox Code Playgroud)

通过使用:

memcpy(&updateArea[0], (bool []) {false, true, false, false, true}, 5);
Run Code Online (Sandbox Code Playgroud)

但是,我收到“获取临时数组的地址”错误。

我还尝试在设置和循环函数中初始化数组,但得到相同的错误。

c++ arduino memcpy

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

为什么这个while循环没有在下面的代码中结束?

抱歉,这段代码看起来很傻,但我只是想了解一下逻辑。

当用户quit作为输入输入时,我试图结束程序。

我写name != "quit" && sname != "quit"为 while 条件,所以如果它们中的任何一个是quit,循环就会结束(对吗?)。

但是当我写quit为时name,它仍然等待sname输入,如果我也为sname输入写退出,那么它最终结束。但是,quit自从我用 编写条件以来,它不应该在第一次看到时结束&&吗?

此外,当我用||. 为什么会这样?

    int main()
    {
        string name="",sname="";
        cout << "enter your name and surname \n";

            cout << ">>name=";
            getline(cin,name);

            cout << ">>surname=";
            getline(cin,sname);

       while (name != "quit" && sname != "quit")
        {
            cout << ">>name=";
            getline(cin,name);

            cout << ">>surname=";
            getline(cin,sname);
        }

        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

输出:

enter your …
Run Code Online (Sandbox Code Playgroud)

c++ loops while-loop

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

标签 统计

c++ ×2

arduino ×1

loops ×1

memcpy ×1

while-loop ×1