私はこの質問を複数の記事で見てきましたが、まだ私には分かりやすい説明があります。イムは、リンクされたリストを作成しようとしているが、構造体や関数がエラーを取得せずに呼び出すことはできませんポインタにキャストすることはできません。その本当に私を悩ます。どのようにこの権利を得るためにどのような助けをいただければ幸いですか?下のコードのいくつかは、問題を含んでいます。Typedef構造体をポインタにキャストすることはできません
typedef struct node
{
void *data;
struct node *next;
} node;
node *head = NULL;
node* create(void *data, node *next)
{
node *new_node = (node*)malloc(sizeof(node));
if(new_node == NULL)
{
exit(0);
}else{
new_node->data = data;
new_node->next = next;
return new_node;
}
}
node* prepend(node *head, void *data)
{
node *new_node = create(data,head);
head = new_node;
return head;
}
void preload_adz(int adz_fd)
{
struct adz adz_info;
char adz_data[40];
char adz_text[38];
int adz_delay;
char adz_delayS[2];
read(adz_fd,adz_data,40);
strncpy(adz_text,adz_data + 2,40-2);
sprintf(adz_delayS, "%c%c",adz_data[0],adz_data[1]);
adz_delay = atoi(adz_delayS);
adz_info.delay = adz_delay;
strncpy(adz_info.text,adz_text,38);
head = prepend(head, (void*)adz_info); //<---This line throws the error
while(read(adz_fd,adz_data,40) > 0)
{
}
}
構造体をポインタとしてキャストすることはできません。あなたはそこで何を達成しようとしていますか? – kaylum
リンクされたリストを開始しようとしていて、チュートリアルに従っていましたが、これはチュートリアルで行ったとおりです:/ http://www.zentut.com/c-tutorial/c-linked-list/#C_Linked_List_Program <チュートリアル – WizKiz
'(void *)adz_info' - >'&adz_info'? – BLUEPIXY