Vì sao phép gán struct bị lỗi?

Em gặp lỗi này. Câu hỏi em để ngay phần code ạ. Mong mọi người giải đáp giúp em.

#include <stdio.h>
struct day
{
    char thu[50];
    int ngay;
    int thang;
};
typedef struct day day;
int main()
{
    day d[7];
    d[0] = {"cn", 2, 7};               // Vì sao Lỗi  ?????????
    d[1] = {"hai", 3, 7};            // Vì sao Lỗi  ?????????
    day dd = {"ba", 18, 3};          // Không lỗi
    return 0;
}

Kết quả sau khi chạy

error: expected expression before '{' token
     d[1] = {"cn, 2, 7};
            ^
error: expected expression before '{' token
     d[2] = {"hai", 3, 7};
            ^

Thank mọi người!!!

Cú pháp này chỉ dùng được lúc khởi tạo thôi (gọi là initializer :smiley: )
Tức là bạn viết ntn

day d[7] = {{"cn",2,7},{"hai",3,7}};
4 Likes

Thêm ép kiểu nữa là được :kissing:

d[0] = (day){"bay", 11, 9};
4 Likes

Sao thông báo lỗi lại báo thiếu 1 dấu nháy kép (") vậy? Khác với đoạn mã của bạn đủ 2 dấu nháy kép cho "cn".

1 Like

cảm ơn ạ!! :heart_eyes:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?