编译错误,成员不是工会的成员使用指针/结构

时间:2014-11-23 20:29:09

标签: c string pointers struct

我已经重写了一个项目所需的功能,用于构建媒体数据库以及媒体本身的信息。 在下面的一段代码中,我试图从用户那里获得一个字符串,格式为HH:MM:SS,用于标题的长度。 然后我必须使用指向第一个isdigit char的指针分割字符串几个小时,首先是在第一个之后是字母字符#":"分钟和第一个isdigit字符在最后":"检查字符串是否正常,我希望用户输入。 为了检查子串是否合法,然后使用atoi转换为int并尝试写回结构,但指针正在烘烤我。 任何帮助表示赞赏。

代码本身(为更好的可读性而使用pastebin)datetime.c with functions to examine string and put pointers on first digit of the input, first digit after first: and first digit after last:

我评论了编译错误发生的位置(在pastebin上为l.103 105 107)

为了更好地了解这里使用的结构:

datastructure.h everything but char * zeit is required as written

提前谢谢我最近真的感到愚蠢,试图强迫它通过反复试验来编译,而且我不认为我离目的地更近了......

编辑:当我尝试编译时:

||=== Build: Debug in Iue2 (compiler: GNU GCC Compiler) ===|
C:\Users[...]\datetime.c||In function 'convertStringToTime':|
C:\Users[...]\datetime.c|104|error: request for member 'hour' in something not a structure or union|
C:\Users[...]\datetime.c|106|error: request for member 'minute' in something not a structure or union|
C:\Users[...]1\datetime.c|108|error: request for member 'second' in something not a structure or union|
||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

1 个答案:

答案 0 :(得分:0)

第74行被破坏:而不是void convertStringToTime(char * strTime,TTime * Zeit)它必须是void convertStringToTime(char * strTime,TTime * lp)。其他任何事情似乎都没问题。 将尝试现在完成内存分配,并将strtol()视为替代解决方案。