小编Rah*_*ahn的帖子

C++:调试总线错误

我正在尝试使用shell中的命令在Linux中编译c ++程序

$ g++ -Wall *.cpp -o prog
Run Code Online (Sandbox Code Playgroud)

由于某种原因,它继续给我一个奇怪的错误:

g ++:内部错误:总线错误(程序cc1plus)请提交完整的错误报告.请参阅说明.

我在网上搜索了这个总线错误,它说这与访问非法内存有关.

有人可以为我澄清一些事情吗?

c++ compiler-construction

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

在VS2012中for循环后无法声明变量

这是我的代码:

//main.c
int main()
{
    int i=0;
    for (i = 0; i < 10; i++)
    {
        //do nothing
    }
    int temp = 0;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

代码可以用我的clang(602.0.49)编译,但error C2143在VS 2012中生成:

错误C2143:语法错误:缺少';' 在'类型'之前

将后缀修改为.cpp或删除后,一切都很好int temp = 0;

这是否意味着我无法for在C项目中循环后声明变量?

c visual-studio-2012

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

MATLAB - 在一行中转置和提取矩阵

old_mat = [1,2,3; 4,5,6];

new_mat = old_mat'(2:end, :);
new_mat = (old_mat')(2:end, :);
Run Code Online (Sandbox Code Playgroud)

我想转置并提取一个矩阵但我没有尝试这些尝试.

是否可以排成一行?

matlab

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

特征中的默认构造函数实现

Point并Vec2使用相同的变量和完全相同的构造函数定义:

pub struct Point {
    pub x: f32,
    pub y: f32,
}

pub struct Vec2 {
    pub x: f32,
    pub y: f32,
}

impl Point {
    pub fn new(x: f32, y: f32) -> Self {
        Self { x, y }
    }
}

impl Vec2 {
    pub fn new(x: f32, y: f32) -> Self {
        Self { x, y }
    }
}
Run Code Online (Sandbox Code Playgroud)

是否可以定义一个特征来实现构造函数?

到目前为止,我发现只能定义接口,因为内部变量未知:

pub trait TwoDimensional {
    fn new(x: f32, y: f32) -> Self;
}
Run Code Online (Sandbox Code Playgroud)

traits rust

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

初始化常量数组的简单方法

我希望定义一个可FIBONACCI_SEQUENCE全局访问的常量数组(在本例中),其项目可以使用 const 函数(fib()在本例中)进行计算。

初始化数组时,我必须手动输入[fib(0), fib(1), fib(2)...]直到最后一个。有没有一种简单的方法可以用类似的东西初始化它[fib(i) for i in 0..200]?

斐波那契数列只是这里的一个示例,实际的用户情况要复杂得多。

pub const fn fib(n: i32) -> i32 {
    if n <= 1 {
        return n;
    }
    return fib(n-1) + fib(n-2);
}

const FIBONACCI_SEQUENCE: [i32; 3] = [fib(0), fib(1), fib(2)];


fn main() {}
Run Code Online (Sandbox Code Playgroud)

constants rust

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

如何为模板化结构输入别名

我可以为一个结构添加别名,如下所示:

struct DummyStruct {}
use DummyStruct as MyStruct;
Run Code Online (Sandbox Code Playgroud)

但是当涉及到模板化结构时:

struct TemplatedStruct<T> {
    v: T
}
use TemplatedStruct::<i32> as AnotherStruct;
Run Code Online (Sandbox Code Playgroud)

我收到错误:

8 | use TemplatedStruct::<i32> as AnotherStruct;
  |                      ^ expected identifier
Run Code Online (Sandbox Code Playgroud)

如何修复它以给模板化结构起别名?

generics rust

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