2016-08-02 29 views
0

我沒有得到這個程序的輸出。 //指針和結構 我想要輸出爲1Jatin。而是通過使用結構來刷新指針。我不能那樣做。它以int和float的形式工作。但不是int和char。任何一個請解決這個。刷新整數和字符指針

#include <stdio.h> 

struct name{ 
    int a; 
    char b; 
}; 

int main(){ 
    struct name *ptr ,p; 
    ptr = &p; 
    printf("Enter integer:"); 
    scanf("%d", &(*ptr).a); 
    printf("Enter name:"); 
    scanf("%s", &(*ptr).b); 
    printf("Displaying:"); 
    printf("%d%s",(*ptr).a,(*ptr).b); 

    return 0; 
} 

回答

2
#include <stdio.h> 

#define MAX_NAME_LENGTH 32 

struct name{ 
    int a; 
    char b[MAX_NAME_LENGTH]; 
}; 

int main(){ 
    struct name *ptr ,p; 
    ptr = &p; 
    printf("Enter integer:"); 
    scanf("%d", &ptr->a); 
    printf("Enter name:"); 
    scanf("%s", ptr->b); 
    printf("Displaying: "); 
    printf("%d %s\n",ptr->a,ptr->b); 

    return 0; 
} 

很多事情:字符的

  1. 你可以簡單地我們-> operator取消引用指針,其成員
  2. C字符串是空終止數組。這意味着b成員必須是足夠大的數組以存儲名稱字符+空終止符('\0',0x00,0)。