Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tại sao không dùng toán tử mũi tên (->) trong gets và puts?


Bạn không thể đọc đầu vào người dùng vào một con trỏ chưa khởi tạo. Thay vào đó, hãy có một biến kiểu struct và gán địa chỉ của nó cho con trỏ trước khi truy cập thành viên bên trong bằng toán tử ->.

Ví dụ

#include <stdio.h>

struct example {
    char name[20];
};

int main() {
    struct example *ptr;
    struct example e;
    puts("enter name");
    gets(e.name); // unsafe, chỉ để minh họa
    ptr = &e;
    puts(ptr->name);
}

Đầu ra

enter name
Disha
You entered Disha