đầu mối nằm trong tiêu đề nhưng về cơ bản tôi đã thừa hưởng một số mã có hơn 800 trường hợp của strcpy. Tôi muốn viết một hàm mới và sau đó thay thế strcpy bằng strcpy_mine.strcpy ... muốn thay thế bằng strcpy_mine mà sẽ strncpy và null chấm dứt
Vì vậy, tôi đang cố gắng tìm ra danh sách tham số strcpy_mine sẽ có.
tôi đã cố gắng:
void strcpy_mine(char* pTarget, const char* const pCopyMe)
{
const unsigned int lenAlwaysFour = sizeof(pCopyMe); //:(
strncpy(pTarget, pCopyMe, lenAlwaysFour);
//add extra terminator in case of overrun
pTarget[lenAlwaysFour] = 0;
}
nhưng sizeof phải lúc nào cũng 4 pCopyMe là một con trỏ
những gì tôi không muốn làm là thay thế
strcpy (buf, pCopyMe);
với
strncpy (buf, pCopyMe, sizeof(pCopyMe)); buf[sizeof(pCopyMe)] = 0;
bất kỳ ý tưởng nào? (Strcpy_l không có sẵn)
cổ vũ
cổ vũ!đây gần như là những gì tôi theo sau, nhưng nó vẫn buộc tôi đặt kích thước của bộ đệm bằng chữ V mặc dù char buf [200]; strcpy_mine <200> (buf, pString); – timB33
strCpyMine (buf, pString); –
timB33
Sau đó, bạn đang làm điều gì đó sai trái. Trình biên dịch lỗi thời? – MSalters