2014-11-23 59 views
1

我有一個帶有char指針成員的結構。 我無法弄清楚如何讀取用戶輸入並將其存儲在指針內。 這裏是我的代碼SNIPPIT,任何幫助表示讚賞C - 在結構中獲取char *的用戶輸入

BusRoute.c

void setBusRouteInfo(){ 
    for(int i=unusedE; i<10; i++){ 
     printf("Entry %d: Route Number: ",i+1); 
     scanf("%d",&(route[i].busRouteNumber)); 

     printf("Starting Location: "); 
     //Get user input for starting location 

    }//end for 
}//end function 

BusRoute.h

struct busRoute { 
    int busRouteNumber; //successfully storing user input 
    char *startingLocation; //trying to store user input here 
    char *endingLocation; 
    char driverName[36]; 
}route[10]; 

回答

3

你首先要分配內存吧。所以,做這樣的事情:

for(i = 0; i < 10; i++) { 
    route[i].startingLocation = malloc(sizeof(char) * 1024); 
} 

現在你可以使用在startingLocation的ADRESS通過這樣的:

scanf("%s", route[i].startingLocation) 

要知道,你必須知道該輸入將事先有多大(以這個例子是1 KB)。