我有一個基本問題,我不能爲我的生活弄清楚。對C來說新的東西讓我忍受。C - 訪問圖形陣列
首先我創建結構的數組:
struct rule {
int *in; /* ingress flag */
int *out; /* egress flag */
char *actionvalue; /* actionvalue BLOCK or UNBLOCK */
char *proto; /* protocol e.g. UDP TCP ICMP */
char *ip_src; /* source and dest address */
int *srcport; /* src port */
char *net_src; /* source and dest netmask */
char *ip_dst; /* source and dest address */
int *dstport; /* dst port */
char *net_dst; /* source and dest netmask */
} rulelist[10];
然後我給它們賦值
rulelist[policy_count].in = strsep(&temp, delims);
rulelist[policy_count].out = strsep(&temp, delims); etc...
,然後我可以訪問它們沒有問題
printk("%s", rulelist[policy_count].in);
但是,當我在代碼i中稍後訪問數組時, ñ另一個功能..
printk("%s", rulelist[policy_count].in);
會崩潰,就像是derefrencing一個空指針。
我已經閱讀了很多關於初始化而不是分配的內容,但每個例子都不一樣,我似乎無法很好地理解它。
我也不明白我如何立即訪問它,然後無法在不同的功能。這個結構是全局聲明的,所以我不相信它是一個範圍問題。
由於
請始終且毫無例外地在啓用所有編譯器警告的情況下進行編譯(例如,GCC上的-WWallWatra -pedantic -Wwrite-strings),並且不要忽略任何警告。 – 2012-02-12 17:27:15