ไม่สามารถอ่าน input เข้า pointer ที่ยังไม่ได้ initialize ได้ ควรสร้างตัวแปร struct แล้วกำหนด address ให้ pointer ก่อนจึงจะใช้ -> เข้าถึงสมาชิกได้
ตัวอย่างที่ถูกต้อง
#include <stdio.h>
struct example {
char name[20];
};
int main() {
struct example *ptr;
struct example e;
puts("enter name");
gets(e.name); // อ่านเข้า e.name โดยตรง
ptr = &e; // ชี้ ptr ไปที่ e
puts(ptr->name); // ใช้ -> เข้าถึงผ่าน pointer
}
ผลลัพธ์ตัวอย่าง
enter name Disha You entered Disha
จุดสำคัญ: ต้องมีตัวแปรจริง (e) ก่อน จึงจะชี้ pointer ไปที่มันได้ ใช้ gets(e.name) อ่านเข้า struct โดยตรง แล้วค่อยชี้ pointer