C 结构数组

C 结构数组,c,arrays,struct,C,Arrays,Struct,试图创建一个结构数组(对C来说是新的),但是当我试图初始化数组时,我得到了一个“数组类型有不完整的元素类型”。我做错了什么 typedef struct morsechar { char character; char* morse; } MorseChar; struct MorseChar lookup[] ={{'A', ".-"}, {'B', "-..."}, {'C', "-.-."}, {'D',

试图创建一个结构数组(对C来说是新的),但是当我试图初始化数组时,我得到了一个“数组类型有不完整的元素类型”。我做错了什么

typedef struct morsechar
{
   char  character;
   char* morse;
} MorseChar;

struct MorseChar lookup[] ={{'A', ".-"},    {'B', "-..."},  {'C', "-.-."},  
                            {'D', "-.."},   {'E', "."},     {'F', "..-."},      
                            {'G', "--."},   {'H', "...."},  {'I', ".."},
                            {'J', ".---"},  {'K', "-.-"},   {'L', ".-.."},
                            {'M', "--"},    {'N', "-."},    {'O', "---"},
                            {'P', ".--."},  {'Q', "--.-"},  {'R', ".-."},
                            {'S', "..."},   {'T', "-"},     {'U', "..-"},
                            {'V', "...-"},  {'W', ".--"},   {'X', "-..-"},
                            {'Y', "-.--"},  {'Z', "--.."},  {'0', "-----"}, 
                            {'1', ".----"}, {'2', "..---"}, {'3', "...--"},
                            {'4', "....-"}, {'5', "....."}, {'6', "-...."},    
                            {'7', "--..."}, {'8', "---.."}, {'9', "----."},
                            {'.', "#"},     {'-', "^"}}; 

您已经定义了类型
struct-morsechar
morsechar
,但您正在尝试使用未定义的类型
struct-morsechar
。相反,写

MorseChar lookup[] = { /* Same as before */ };

或者
struct morsechar
,但是typedef将是多余的+1.感谢您的回复,但是经过更正,我仍然得到了相同的错误:数组类型的元素不完整type@Cory此外,在使用typedef时,不必指定struct标记,除非它是递归结构:
typedef struct{…}MorseChar已足够。