小编Ale*_*lex的帖子

减少循环中的内存访问(C)

我有一个关于减少循环中内存调用次数的问题.考虑以下代码(这不是我的代码,因为它太长了,因为我不能在这里代表它):

for(k=0;k<n;k++)
{
    y[k] = x[0]*2 + z[1];
}
Run Code Online (Sandbox Code Playgroud)

如您所见,在每次迭代中,都会调用内存中的相同块(x [0],z [1]).我想知道在多次调用相同内存块时是否有任何方法可以减少内存访问.提前致谢.

c

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

如何使用Unity Toggle Check Function(选中和未选中)

我正在尝试切换。当我点击切换按钮(如果它处于打开状态,我是指选中的)时,它会关闭一些游戏对象;如果我点击切换按钮(如果它处于关闭状态,我是指未选中的),它会打开一些游戏对象,但是我不知道哪个功能是统一的 toggle.onselecttoggle.onValuesChanged?或其他

public GameObject controlledObject;
public NamesGet nameController;
public Text text;
public Button button;
public Toggle toggle;
private bool deneme;
public void FixedUpdate()
{
    text.text = controlledObject.name;

    if(?????????)
    {
        controlledObject.SetActive(!controlledObject.activeSelf);

    }
}
Run Code Online (Sandbox Code Playgroud)

c# toggle oncheckedchanged unity-game-engine

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

strlen(char*)上的分段错误,但char*IS终止

我有一个非常简单的函数,只需将char转换为char*,它表示char的二进制值,0和1为chars.

char* stringToBin(char symbol) {
    int pos = 0;
    int value = (int) symbol;
    int rest;

    char* result = (char*) malloc(sizeof(char) * 9);

    while(value > 0) {
            if(value % 2 == 0) {
                    result[7-pos] = '0';
            }
            else {
                    result[7-pos] = '1';
            }
            pos++;
            value = value / 2;
    }

    while(pos < 8) {
            result[7-pos] = '0';
            pos++;
    }

    result[8] = '\0';

    puts(result);
    puts(strlen(result));

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

我的问题是我无法打印char*的长度.打印整个char*工作完美,但不计算大小.我总是得到一个分段错误.我认为这个问题很简单,但我现在没办法解决.所以请给我一些缺失的提示;)

c char segmentation-fault

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

C#事件和类层次结构

我有以下课程

儿童班:

public class ChildClass
{
   ...
   private void EventHandler(...);
   ...
}
Run Code Online (Sandbox Code Playgroud)

家长班:

public class ParentClass
{
   ...
   ChildClass child;
   ...
   private void EventHandler(...);
   ...
}
Run Code Online (Sandbox Code Playgroud)

他们都在同一事件上有一个事件处理程序.

问题是这些处理程序将被调用的顺序是什么?

c# events class-hierarchy

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

为什么printf不在控制台上打印"操作员"?

Bottom printf()不会在控制台上打印操作员变量.但只有number1number2打印.可能是什么原因?

输出:2 7多少钱?

char operator;

    switch(type){   
        case 1: 
        operator=='+';
        result=number1+number2;
        break;
        case 2: operator=='-';
        result=number1-number2;
        break;
        case 3: operator=='*';
        result=number1*number2;
        break;
        case 4: 
        operator=='/';
        result=number1/number2;
        break;

    }       
    printf("How much is %d %c %d ?",number1, operator, number2);
Run Code Online (Sandbox Code Playgroud)

c

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

如何保证变量的大小

我的变量必须是16位长.我应该如何在平台上将其定义为16位?

我可以将其定义为short,但根据平台,它可以是16位或更多.

c typedef

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

在使用Rc实现二叉树时,无法将不可变借用内容借用为可变内容

我想实现二叉树.我的主要语言是C++,所以代码可能不是惯用的Rust,而是编译以下代码:

use std::rc::Rc;

struct Node {
    left: Option<Rc<Node>>,
    right: Option<Rc<Node>>,
    data: String,
}


impl Node {
    fn new(_data: String) -> Node {
        Node {
            data : _data.clone(),
            left : None,
            right : None,
        }
    }

    fn insert_left(&mut self, mut node: &Rc<Node>) {
        self.left = Some(node.clone());
    }

    fn insert_right(&mut self, mut node: &Rc<Node>) {
        self.left = Some(node.clone());
    }
}

fn main() {
    let mut root = Rc::new(Node::new(String::from("root")));
    let mut left = Rc::new(Node::new(String::from("left")));
    root.insert_left(&left);
}
Run Code Online (Sandbox Code Playgroud)

我有编译错误:

error: cannot borrow immutable borrowed content …
Run Code Online (Sandbox Code Playgroud)

rust

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

注意:'std :: thread'在头文件'&lt;thread&gt;'中定义;您忘记了“ #include &lt;thread&gt;”吗?

我尝试在c ++中编译一个简单的c ++代码,但是当我尝试在Windows中使用g ++编译它时,总是返回错误。

我用

g++ -std=c++0x -pthread main.cpp
Run Code Online (Sandbox Code Playgroud)

错误消息是:

std::thread' is defined in header '<thread>'; did you forget to '#include <thread>'?
Run Code Online (Sandbox Code Playgroud)

这没有意义,因为代码只是

#include<thread>

void f(int i) {}

int main() {
        std::thread t(f, 1);
        t.join();
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

我相信这段代码可以在linux上运行,我想知道为什么它不能在Windows下运行。

c++ multithreading g++ c++11

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

在解析过程中将`*`粘贴到最近的下一个单词

我在文中有以下内容:

int* a, b;
Run Code Online (Sandbox Code Playgroud)

预期的结果是:

int *a, b;
Run Code Online (Sandbox Code Playgroud)

以下Perl代码应该产生预期的行:

$line =~ s#\s*\*\s*#\s\*#g;
Run Code Online (Sandbox Code Playgroud)

不幸的是,结果如下:

int*a, b;
Run Code Online (Sandbox Code Playgroud)

正则表达式有什么问题?

regex perl parsing

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