2016-01-20 66 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