Lỗi crash chương trình khi dùng mảng các chuỗi

Sao đoạn code của mình khi ấn chạy thì nó bị lỗi phần mềm rồi sau đó hiện cửa sổ terminal nhưng ko hiện ra gì cả.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int so_1 = 1;
    if (so_1)
        {
        char convat[]={'con meo','con cho'};
        printf("2 con vat: %s va %s", convat[0], convat[1]);
        printf ("XYZ");
        }
    else
        printf ("ABC");
    return 0;
}

Cách khai báo này sai rồi, mình không thể dùng thế này được

char convat[]={'con meo','con cho'};

Phải sửa lại thế này

char convat[][80]= {"con meo","con cho"};

Lý do lỗi

  • Dấu ' là dành cho ký tự, không dùng cho chuỗi, để khởi tạo chuỗi, ta phải dùng "
  • Nếu muốn in ra một mảng của các chuỗi, thì ta phải dùng mảng 2 chiều, trong đó một chiều dùng để chứa số lượng chuỗi. Chiều còn lại dùng để chứa chuỗi.
1 Like
char convat[][80]= {"con meo","con cho"};

Trong đoạn trên sao lại đặt chiều thứ 2 là 80 hả anh?

Anh cho bừa một con số vào thôi, để có thể chứa được chuỗi. Không cho số vào C không hiểu. Nhưng chiều thứ nhất thì không cần, C có thể hiểu được.

1 Like

Bạn ghi thế này có nghĩa là bạn đang khai báo 1 mảng 2 chiều
Theo mình hiều nó là vậy .

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