我有這個結構,我想我可以設置條件,如果結構指向一個NULL值。通過一個數組結構循環
這裏是我的這個例子結構簡單:
typedef struct
{
char *name;
char *data;
} details_t;
details_t emp_details [] =
{
{ "peter", "lawyer" },
{ "john", NULL }, /* No data for john */
{ NULL, NULL }, /* Indicates last element in the array */
};
我想我應該遞增emp_details陣列和取消引用指針,看它是否包含在第一個數組元素的NULL。但不知道我是否正朝着正確的方向前進。
for(i=i; *emp_details; i++)
{
printf("Name: [ %s ] [ %s ]\n", emp_details[i].name, emp_details[i].data);
}
我可以建議使用' - >'而不是'(*).'嗎? – mouviciel 2009-10-30 08:49:39
除了使用' - >'代替'(*).'之外,在嘗試使用它之前不要忘記檢查'it-> data!= NULL'。否則「約翰」可能會導致'printf()'(或其他)廢話。 – 2009-10-30 09:14:11
@Chris Jefferson爲什麼'int size_of_array = sizeof(emp_details)/ sizeof(details_t);'脆弱?你想分享的任何個人經驗? – 2009-10-30 10:58:43