Hỏi về giá trị của phần tử trong mảng ký tự

mình viết một đoạn code về mảng như thế này

int main()
{
  char mangkytu[]="12345";
  mangkytu[5]= '6';
  printf("%s\n",mangkytu);
}

thì kết quả chạy là 123456< <

bạn, anh chị nào chỉ dùm mình lý do tại sao nó tự add thêm mấy phần tử phía sau như vậy , và cách khắc phục với ạ.

Do chuỗi của bạn chưa có ký tự kết thúc chuỗi \0
thêm dòng mangkytu[6] = '\0' là sẽ hết !

1 Like

hehe cám ơn bạn nhé !

Hi Pham Anhminhanh.1148.
Code của bạn hình như hơi có vấn đề trong truy cập vùng nhớ thì phải ?

khai báo 5 phần tử tức là 0-4… mà truy cập phần tử thứ 5 … truy cập vô nulll
Lạy :)))

Đoạn mangkitu[5]=6 là viết đè vô null rồi, lm mất kí tự kết thúc xâu.

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