ここでは、ディレクトリと呼ばれる構造を作成しました。これには、子への二重ポインターと親への単一ポインターがあります。
typedef struct {
struct directory** children;
struct directory* parent ;
}directory;
ここでは、ディレクトリを追加する関数を作成しました。
directory* add_dir (char* name , char* path , directory* parent) {
directory* d = malloc (sizeof (directory)) ;
memset ( d , 0 , sizeof(directory)) ;
//WARNING by line below
d->children = (directory**)malloc ( sizeof(directory*) * DIR_COUNT) ;
memset ( d->children , 0 , sizeof(directory*) * DIR_COUNT) ;
//WARNING by line below
d->parent = (directory*) parent ;
//Wanrning by line below
parent->children[parent->alloc_num_child] = (directory*) d ;
}
子への二重ポインタと親ディレクトリへの単一ポインタを持つディレクトリと呼ばれる構造体を定義しました。これをコンパイルすると、警告が表示されます。
Warnings :
warning: assignment from incompatible pointer type [enabled by default]
warning: assignment from incompatible pointer type [enabled by default]
warning: assignment from incompatible pointer type [enabled by default]
この警告が表示される理由がわかりません。