Có người nói với tôi để sử dụng strlcpy
chức năng thay vì strcpy
như thế nàykhi tôi sử dụng chức năng strlcpy trong c các compilor cho tôi một lỗi
#include <stdio.h>
#include <string.h>
void main()
{
char var1[6] = "stuff";
char var2[7] = "world!";
strlcpy(var1, var2, sizeof(var2));
printf("hello %s", var1);
}
và khi tôi biên dịch tập tin nó mang lại cho tôi những lỗi sau:
C:\Users\PC-1\AppData\Local\Temp\ccafgEAb.o:c.c:(.text+0x45): undefined referenc
e to `strlcpy'
collect2.exe: error: ld returned 1 exit status
thông báo: tôi đã cài đặt MinGW (Minimalist GNU dành cho Windows) và gcc phiên bản là 4.7.2
Sự cố là gì?
@MitchWheat Một điểm hợp lệ, nhưng đó không phải là lý do tại sao 'ld' đang phàn nàn :-)) – cnicutar
Tôi không nói đó là. :) –
var1 chỉ có 6 không gian char và bạn đang cố gắng sao chép 6 từ char vào nó. Aint 'bạn mất tích tốt cũ của chúng tôi' \ 0 'hoặc aint' bạn sẽ viết bộ đệm trong quá khứ của var1? – Abhineet