1

このコード:

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

int j_btree_create (int fn_initial_nodes);

typedef struct {
    int depth;
    int value;
    void *item;
    void *left_pointer;
    void *right_pointer;
} j_btree_node_int;

typedef struct {
    int nodes;
    int available_nodes;
    int btree_extension;
} j_btree_descriptor_int;



int j_btree_create (int fn_initial_nodes) {
    int *free_btree_node;
    int loop_counter;
    j_btree_descriptor_int *btree_start;

    btree_start = (j_btree_descriptor_int *) malloc (((sizeof(j_btree_node_int) + sizeof(free_btree_node)) * fn_initial_nodes) + sizeof(j_btree_descriptor_int));
    printf ("btree_start: " . btree_start);
    /* *btree_start.nodes = fn_initial_nodes;
    *btree_start.available_nodes = fn_initial_nodes;
    *btree_start.extension = NULL; */
    for (loop_counter = 0; loop_counter < fn_initial_nodes; loop_counter++) {
        printf ("loop_test:" . loop_counter);
    }
}

次のエラーが発生します。

/home/jamie/aws/btree_int.c||関数「j_btree_create」内:| /home/jamie/aws/btree_int.c|28|エラー: メンバー 'btree_start' のリクエストが構造体または共用体ではない| /home/jamie/aws/btree_int.c|33|エラー: 構造体または共用体ではないメンバー「loop_counter」のリクエスト| ||=== ビルドが終了しました: 2 つのエラー、0 の警告 ===|

CodeBlocks でコンパイルした場合。私は自分の問題に対する正確な答えを見つけることができませんでした (私は調べました)。誰かが私が間違っていることを大まかに知っていますか? 私がCにかなり慣れていないことを考えると、おそらく複数のことです。

4

1 に答える 1

0
printf ("btree_start: " . btree_start);

これは、 での処理方法ではありませんc。連結演算子はなく.、文字列 (文字へのポインター) と構造体へのポインターを連結しません。ポインターを印刷したい場合は、

printf("btree_start: %p\n",btree_start);

ループカウンターの場合は

printf("loop_test: %d",loop_counter);
于 2012-10-06T21:16:47.427 に答える