2016-01-20 70 views
-3

我想將Student結構中的指針​​和*age設置爲NULL。我不知道這是如何從main()中完成的。設置stuct中的指針爲null

typedef struct Student Student; 
typedef struct Student{ 
    char *name; 
    int *age; 
} Student; 

我想在我的主要設置上述指針爲NULL。

我的主要學生的聲明是:

Student Tom; 

我不知道如何設置tom.name和tom.age指針爲NULL。

+1

如何在'主()''聲明student'。請發佈代碼,如果它不工作,爲什麼不呢。如果它在工作,那麼你爲什麼要問? –

+5

你對你的術語太sl sl。 「在下面的結構中」令人困惑。結構定義定義了一個*類型*,而不是一個值。 –

+2

將指針設置爲null很容易:'Tom.name = NULL;'。這是你所問的全部嗎? –

回答

1

你可以做到這一點,例如通過以下方式

Student Tom = { NULL, NULL }; 

Student Tom = { .name = NULL, .age = NULL }; 

Student Tom; 

Tom.name = NULL; 
Tom.age = NULL; 
+0

儘管它是一個指針,Tom.name = NULL仍然可以工作嗎?我的印象是Tom.name只有在它只是一個char變量而不是一個指針時纔會起作用。 – Brandon

+0

@Brandon一般來說,你必須動態地分配內存,Tom.name將指出你要寫Tom的實際名稱。例如Tom.name = malloc(4 * sizeof(char)); strcpy(Tom.name,「Tom」); –

+0

@Brandon爲什麼它不工作? 'int * i;我= NULL;'工作。只是不要把'Tom.name'(指針本身)與'* Tom.name'(它指向的東西)或'(* Tom).name'或'Tom-> name'混淆(你會如果'Tom'是一個指針,而不是'Tom.name'是一個指針)。 – immibis