繁体   English   中英

我在此非常基本的C代码中遇到“错误:无法打开显示”,但我不明白为什么

[英]I am getting an “Error: Can't Open Display” in this very basic C code, but I don't understand why

因此,我不久前做了一些C编程,基本上忘了所有这些,但是无论如何,我开始做我在网上找到的“ C Refresher”,然后松散地跟随这个二进制搜索树示例,并遇到了错误。 编译并运行它后,它显示“错误:无法打开显示”。 我在学校的某种Linux服务器上运行此代码。 无论如何,这是代码:

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

#define TRUE 1
#define FALSE 0 

typedef struct Node {
  int value;
  struct Node *left;
  struct Node *right;
} Node; 

void add (Node *node, int value)
{
  if (value < node->value) {
    //left side 
    if (node->left == NULL) {
      Node *newNode = malloc(sizeof(Node));
      newNode->value = value;
      newNode->left = NULL;
      newNode->right = NULL; 
      node->left = newNode;
    } else {
  add(node->left, value);
    }
  } else {
    //right side 
    if (node->right == NULL) {
      Node *newNode = malloc(sizeof(Node));
      newNode->value = value;
      newNode->left = NULL;
      newNode->right = NULL;
      node->right = newNode;
    } else {
      add(node->right, value);
    }
  }
}

int search(Node *node, int value)
{
  if (node == NULL) {
    return FALSE;
  } else if (node->value == value) {
    return TRUE;
  } else {
    if (value < node->value) {
      return search(node->left, value);
    } else {
      return search(node->right, value);
    }
  }
}

int main (int argc, char *argv[])
{
  Node root;

  root.value = 23;
  root.left = NULL;
  root.right = NULL; 

  add(&root, 5);
  add(&root, 50);
  add(&root, 8);
  add(&root, 2);
  add(&root, 34); 

  if (search(&root, 23)) {
    printf("23 lives in the tree.\n");
  } else {
    printf("23 does not live in the tree.\n");
  }

  if (search(&root, 42)) {
    printf("42 lives in the tree.\n");
  } else {
    printf("42 does not live in the tree.\n");
  }

  return 0;
}

该代码可能看起来很长,但是实际上很基本。 我想我可以在粘贴代码之前先剪掉一些代码,但我认为我会保留所有内容,以防万一我取出了对该问题至关重要的内容。

我还认为这可能与Node有关,因此在我的main方法中,我放置了一个快速的printf("hi"); Node root;之前Node root; 看看是否会有所作为,但这仍然给了我同样的错误。 我在学校服务器上的帐户中还有另一个程序,该程序有一些printf语句,并且运行得很好。

我尝试了Google搜索这个问题,但是所有这些奇怪的Linux线程都出现了,我真的不太明白。 我的计算机是Windows,但我通过名为Pumac的程序访问了名为emacs的程序进行了所有这些编码,该程序使我可以连接到学校的Linux服务器。

我也用gcc -o tree tree.c编译了它。

对不起,所有写作,我只是想提供尽可能多的信息。 感谢任何能提供帮助的人!

您是在调用“ ./tree”还是“ tree”? 看来您正在尝试通过ssh运行gui应用程序。 要查看哪个应用程序,如果您使用的是Linux计算机,请尝试使用“ ssh -XY HOST”进行连接。 然后,您应该看到一个应用程序启动。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM