我一直在嘗試修復編譯該程序時遇到的幾個錯誤,但似乎無法找到任何解決方案。這些是實際代碼後面出現的以下錯誤。大部分錯誤是'一元*'問題,儘管我認爲這是使用它的正確方法。如果有人能指出我的方向是正確的,那將是非常有幫助的。無法編譯鏈接列表程序
testReadLinkedList.c:13: warning: no semicolon at end of struct or union
testReadLinkedList.c: In function ‘insertListElement’:
testReadLinkedList.c:31: error: incompatible types in assignment
testReadLinkedList.c: In function ‘readFile’:
testReadLinkedList.c:43: warning: comparison between pointer and integer
testReadLinkedList.c: In function ‘countList’:
testReadLinkedList.c:51: error: invalid initializer
testReadLinkedList.c:54: error: invalid operands to binary !=
testReadLinkedList.c:56: error: invalid type argument of ‘unary *’
testReadLinkedList.c: In function ‘printList’:
testReadLinkedList.c:65: error: invalid initializer
testReadLinkedList.c:70: error: invalid type argument of ‘unary *’
testReadLinkedList.c:71: error: invalid type argument of ‘unary *’
testReadLinkedList.c:72: error: invalid type argument of ‘unary *’
testReadLinkedList.c:73: error: invalid type argument of ‘unary *’
testReadLinkedList.c:81: error: invalid type argument of ‘unary *’
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <float.h>
typedef struct LinkedListNode {
int red;
int green;
int blue;
char function[128];
struct LinkedListNode* next
} LinkedListNode;
typedef struct {
LinkedListNode* head;
} Linkedlist;
void initLinkedList(Linkedlist* listIn) {
listIn = (Linkedlist*)malloc(sizeof(Linkedlist));
(*listIn).head = NULL;
}
void insertListElement(Linkedlist* listIn, int redIn, int greenIn, int blueIn, char* functionIn) {
LinkedListNode* newNode = (LinkedListNode*)malloc(sizeof(LinkedListNode));
(*newNode).red = redIn;
(*newNode).green = greenIn;
(*newNode).blue = blueIn;
(*newNode).function = functionIn;
(*newNode).next = (*listIn).head;
(*listIn).head = newNode;
}
void readFile(FILE* fileIn, Linkedlist* listIn) {
char tempLine[128];
int tempRed, tempGreen, tempBlue;
char tempFunction[128];
while(fgets(tempLine, 128, fileIn) != EOF) {
sscanf(tempLine, "%d %d %d %[^\n]", &tempRed, &tempGreen, &tempBlue, tempFunction);
insertListElement(listIn, tempRed, tempGreen, tempBlue, tempFunction);
}
}
int countList(Linkedlist* listIn) {
LinkedListNode currNode = (*listIn).head;
int size = 0;
while(currNode != NULL) {
size++;
currNode = (*currNode).next;
}
return size;
}
void printList(Linkedlist* listIn) {
int i, tempRed, tempGreen, tempBlue;
char tempFunction[128];
LinkedListNode currNode = (*listIn).head;
int listSize = countList(listIn);
for(i = 0;i < listSize; i++) {
tempRed = (*currNode).red;
tempGreen = (*currNode).green;
tempBlue = (*currNode).blue;
tempFunction = (*currNode).function;
printf("Red: %d\n",tempRed);
printf("Green: %d\n",tempGreen);
printf("Green: %d\n",tempBlue);
printf("Function: %s\n",tempFunction);
print("t\n");
currNode = (*currNode).next;
}
}
int main(int argc, char** argv) {
FILE* f1;
Linkedlist* list1;
f1 = fopen(argv[1], "r");
if(f1 == NULL) {
printf("Error: could not open file");
} else {
initLinkedList(list1);
readFile(f1, list1);
}
}
'testReadLinkedList.c:13:警告:沒有分號的結構或聯合結束' – 2014-10-22 12:06:35