小编adv*_*oge的帖子

在没有内置函数或程序集的情况下在C中实现setjmp和longjmp(获取不正确的返回值)

我正在尝试测试我的两个函数,它们模仿setjmp和longjmp用于作业 - 这是非常困难的,因为我们不允许使用内置函数或汇编asm()来实现longjmp和setjmp函数.(是的,那真的是作业.)

问题:我一直收到错误的返回值.所以,简而言之,当main()调用foo()和foo()调用bar(),而bar()调用longjump()时,bar()不应该返回foo(),而是setjmp()应该返回main的返回值为1,应打印"error"(参见下面的main()).

相反,我的输出结果如下:

start foo
start bar
segmentation fault
Run Code Online (Sandbox Code Playgroud)

分段错误,我尝试通过使用malloc初始化指针*p来修复,但似乎没有做任何事情.虽然,分段错误,是我没有得到正确的返回值的原因?

码:

#include <stdio.h>
#include <stdlib.h>

int setjmp(int v);
int longjmp(int v);
int foo(void);
int bar(void);
int *add;


int main(void) {

    int r;

    r = setjmp(r);
    if(r == 0) {
        foo();
        return(0);
    } else {
        printf("error\n");
        return(2);
    }

}

int _main(void) {
    return(0);
}

int setjmp(int v)
{
    add = &v;
    return(0);
}

int longjmp(int v)
{
    int *p;
    p = &v;
    *(p - 1) = …
Run Code Online (Sandbox Code Playgroud)

c stack pointers longjmp setjmp

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

部分有序树是否与二叉树相同?

我对部分有序的树如何工作有点困惑.它们和二叉树有什么相同之处?另外,它最适合用于什么?

例如,如果我将5,6,4,9,3,1,7插入空树中,我会得到:

      5
     / \
    4   6
  /      \
 3       9
/       /
1      7
Run Code Online (Sandbox Code Playgroud)

tree binary-tree data-structures

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

使用Scanner继续获取NoSuchElementException

我正在尝试读取由空格分隔的字符串值.一旦我尝试将它们设置为变量,我就会得到NoSuchElementException错误.我之前做过类似的事情而不是整数,而且从来没有得到过这个错误.做一些研究:java.util.NoSuchElementException:从文件中读取单词:它表示hasNext被实现为使用next()而hasNextLine被实现为使用nextLine(),所以我尝试用hasNext()替换hasNextLine() ,但仍然没有.有人可以帮忙吗?

File fileName = new File("maze.txt");
Scanner file = new Scanner(fileName);

while(file.hasNextLine()){
    String line = file.nextLine();
    Scanner scanner = new Scanner(line);

    //error starts from here
    String room = scanner.next();
    String roomName = scanner.next();
    String wall1 = scanner.next();
    String wall2 = scanner.next();
    String wall3 = scanner.next();
    String wall4 = scanner.next();
    scanner.close();
}
file.close();
Run Code Online (Sandbox Code Playgroud)

maze.txt

room 101 wall door0 wall wall
room 404 door0 wall door1 wall
room 420 wall wall wall door1
door door0 0 1 close
door …
Run Code Online (Sandbox Code Playgroud)

java java.util.scanner

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

未定义的方法"平均"

我正在尝试使用raty.js计算我的rails应用中电影对象的平均星级.这是我的代码片段:

控制器/ movies_controller.rb

def show
  @avg_review = @movie.average(:rating)
end

private
def set_movie
  @movie = Movie.find(params[:id])
end
Run Code Online (Sandbox Code Playgroud)

schema.rb

create_table "movies", force: true do |t|
  t.integer  "user_id"
  t.string   "title"
  t.text     "description"
  t.integer  "image_id"
  t.string   "director"
  t.float    "rating"
  t.integer  "num_ratings"
  t.datetime "created_at"
  t.datetime "updated_at"
  t.text     "url"
  t.string   "tracking"
end
Run Code Online (Sandbox Code Playgroud)

我一直收到错误:

undefined method `average' for #<.Movie:0x5b385d0>
Run Code Online (Sandbox Code Playgroud)

根据我的理解,这是rails中的预定义方法.然而,我收到了错误.有人能帮我吗?

ruby ruby-on-rails raty

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