Chào mọi người, đây là lỗi mình gặp khi sử dụng strcpy trong C++, mình đã set
, ctrl + shift + B không hiện lỗi, nhưng F5 thì không chạy được ạ.Code C++ không thể dùng strcpy trong VS 2017
Vẫn không được nha bạn ơi, mình thữ include string.h vào rồi vẫn không được
Nó bảo là strcpy là không an toàn. Hãy dùng strcpy_s đi.
Vâng, mình cũng biết thế, strcpy_s cần truyền vào 3 tham số, mình đã sửa cho phù hợp, vẫn không được nha b
vậy thì viết 1 cái for loop luôn cho rồi =)
for (int i = 0; i <= len && (pCh[i++] = *s++));
pCh[len] = '\0';
edit: mà đã cấp phát đủ strlen(s) + 1
cho pCh
rồi thì khỏi cần copy kiểu strcpy_s đó, xài strcpy luôn:
for (auto p = pCh; (*p++ = *s++); );
hoặc tốt hơn là xài memcpy
: vì s
và pCh
có kích cỡ như nhau:
memcpy(pCh, s, len + 1);
Ờ mình toàn dùng memcpy với wmemcpy.
Cảm ơn anh nhiều ạ, nhưng cái này dài và phức tạp quá nhỉ
Vì vậy bạn không nên dùng VS mà compiler nó cũng đâu hỗ trợ C++ đầy đủ đâu, và IDE ngon thì có cái free hẳn luôn ấy.
Bạn thêm kiểu gì chứ mình làm thế hoài, chạy bình thường có sao đâu?
Visual Studio là một IDE rất tốt, bản Community là miễn phí. Đến giờ thứ duy nhất mình phàn nàn về nó là cái compiler của nó quá khó để dùng trong command line.
Bạn thử cách này nha: Project --> Properties --> C/C++ --> Advanced --> Disable Specific Warnings --> Thêm 4996 --> OK.
Bạn thêm “#pragma warning (disable : 4996)” ở dươi muc khai báo thư viện xem sao.