#include "stdafx.h"
#include <ctype.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
//typedef struct kvNode kvNode;
struct kvNode
{
char cKey[32];
uint32_t iValue;
struct kvNode *NEXT;
};
//Function declarations
void put(char *key[], int *value);
uint32_t get(char *key[]);
int del(char *key[]);
uint32_t hashkey(char *key);
void strUpper(char *);
const int arraylen = 10; //length of key array
kvNode *keys[]; //our key array
int main()
{
//Create array of pointers to kvNodes
keys[arraylen] = { NULL };
return 0;
}
我敢肯定,這是代碼塊返回錯誤。在構建時發生錯誤,並是:LNK 2001:Unresolve外部符號struct **
1> keyValue.obj:錯誤LNK2001:解析外部符號 「結構kvNode * *鍵」(?鍵@@ 3PAPAUkvNode @@ A)
我試圖做的是在C中練習一個關鍵值存儲(無疑地使用更多的,我們應該說,放鬆語言最近已經鈍了我的C刀),所以我定義了一個鍵值節點struct,然後是一個指針數組到那些節點。在關於向前聲明struct的其他問題上,我得到了用於聲明結構體內結構指針的語法,但由於某種原因編譯器(Vis Studio)在未解析的外部符號上咳嗽,我不知道爲什麼。
的根是這一行:'kvNode *鍵[]; //我們的鍵陣列就像編譯程序時一樣?你已經在typedef的行上註釋了,所以這行應該是'struct kvNode * keys []; //我們的關鍵數組「,但是那麼你的鏈接器會發出一個關於'struct kvNode ** keys'的錯誤,這個錯誤在你的源代碼中不存在。那麼,這是產生錯誤的實際代碼嗎? –
是的,克里已經明白了,編譯器需要知道數組的大小,這是有道理的,但我必須爲我的程序走另一個不同的方向。 – MDMoore313