Cプログラミングを少し前に行ってしまいました。私がオンラインで見つけたこの "Cリフレッシャー"のことをやって、このバイナリ検索ツリーの例をある程度ゆるやかに続け、エラーに遭遇しました。コンパイルして実行すると、「エラー:表示を開けません」と表示されます。私はこのコードを学校のあるLinuxサーバーで実行しています。とにかく、コードは次のとおりです。この非常に基本的なCコードでは「エラー:Can not Open Display」が表示されますが、理由はわかりません
#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 root;
前に迅速printf("hi");
を置くが、それはまだ私に同じエラーを与えた私のmain
方法におけるように、それはノードのこととは何かを持っているかもしれないと思いました。私はこの学校のサーバーの私のアカウントに別のプログラムを持っていて、そのプログラムにはprintf
という文があり、うまくいきます。
私はこの問題をグーグルで見つけましたが、この奇妙なLinuxスレッドがすべて出てきて、本当に理解できませんでした。私のコンピュータはWindowsですが、私はemacsというプログラムでこれをすべてコーディングしましたが、PuTTYというプログラムを使って学校のLinuxサーバに接続することができました。
また、gcc -o tree tree.c
でコンパイルしました。
申し訳ありませんすべての文章のために、私は可能な限り多くの情報を提供しようとしていました。助けることができる誰にも感謝します!
実際にどのように実行していますか?デバッガで実行しようとしていますか? –
"表示できません"はX11エラーメッセージです。あなたはそのコードの中でXを全く使っていません。実行していると思っていることを実行していますか? – Mat
'env'はDISPLAY変数の下であなたに何を与えますか?デフォルトは ':0.0' – Eregrith