30/09/2018, 16:29

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;
}
Nguyễn Minh Dũng viết 18:30 ngày 30/09/2018

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.
Dao Trong Bach viết 18:32 ngày 30/09/2018
char convat[][80]= {"con meo","con cho"};

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

Nguyễn Minh Dũng viết 18:44 ngày 30/09/2018

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.

Thai Hoc Nguyen viết 18:33 ngày 30/09/2018

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

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 .

Bài liên quan
0