簡體   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