01/10/2018, 09:09

Tại sao dùng strcpy sai mà strcpy_s lại đúng?

Em có thử 2 trường hợp này , em không hiểu tại sao trường hợp strcpy(p,ppt) lại sai mà cái kia lại đúng . Em cảm ơn a/c giải thích giúp e

Vu Van Chung viết 11:16 ngày 01/10/2018

cái này do ide vs nó vậy thôi bạn à!

Khoa NTA viết 11:22 ngày 01/10/2018

strcpystrcpy_s chung chức năng nhưng cú pháp khác nhau nha bạn. Không nên đặt tiêu đề như vậy.

  • char *strcpy(char *dest, const char *src); : copy từ ‘src’ và ‘dest’, hơi nguy hiểm nếu bạn không cẩn thận thì sẽ dễ gây lỗi crash chương trình nếu ‘dest’ < ‘src’.
  • errno_t strcpy_s(char *dest, size_t n, const char *src); : Copy không quá n phần tử từ ‘src’ sang ‘dest’.

Bạn tham khảo thêm: cplusplus, Microsoft MSDN.

Lam Nguyen viết 11:14 ngày 01/10/2018

Bạn ơi, theo mình biết thì khi khái báo char *p = “xin chao” thì máy nó sẽ tạo một vùng nhớ trong stack lưu cái chuỗi này vào và con trỏ p sẽ trỏ vào vùng nhớ ấy, và vùng nhớ này CHỈ CÓ THỂ ĐỌC, tức là nếu bạn gán cho biến khác hoặc là in nó ra màn hình thì được nhưng không được phép thay đổi nội dung hay kích thước của nó

Bài liên quan
0