これが私のコードです。Linked List を正しく実装したと確信していますが、いくつかの構文エラーがあると思います。
#include <stdio.h>
#include <stdlib.h>
struct node {
int data;
struct *node next;
};
void push(struct node** headRef, int data)
{
struct node* newNode;
newNode = malloc(sizeof(struct node));
newNode->data = data;
newNode->next = *headRef;
*headRef = newNode;
}
struct node* primeFactors(int num)
{
struct node* head = NULL;
if (num == 1)
{
return head;
}
int factor = 0;
int i = 2;
while (i <= num)
{
if (num % i)
{
factor = i;
}
}
push(&head, factor);
primeFactors(num / factor);
return head;
}
int main(int argc, char const *argv[])
{
struct node* head = primeFactor(600851475143);
printf("%d/n", head->data);
}
ここに私のエラーがあります。これらのほとんどが何を意味するのかわかりませんが、構造体ノードには間違いなく next という名前のメンバーが必要です。
[1] $ gcc 3.c -o 3 3.c:6:9: エラー: '*' トークンの前に '{' が必要です 3.c: 関数「プッシュ」内: 3.c:14:9: エラー: 'struct node' には 'next' という名前のメンバーがありません 3.c: 関数「main」内: 3.c:42:22: 警告: 初期化により、キャストなしで整数からポインターが作成されます [デフォルトで有効]
助けていただければ幸いです。