#inlcude <stdio.h>
#inlcude <stdlib.h>
#inlcude <string.h>
int main() {
char *buff = (char*)malloc(sizeof(char) * 5);
char *str = "abcdefghijklmnopqrstuvwxyz";
memcpy (buff, str, strlen(str));
while(*buff) {
printf("%c" , *buff++);
}
printf("\n");
return 0;
}
这段代码打印了完整的字符串“abc...xyz”。但是“buff”没有足够的内存来容纳该字符串。memcpy()函数是如何工作的?它使用realloc()函数吗?
realloc()
(但不是memcpy()
)来实现此目的。 - iammilindmalloc
的返回值进行强制类型转换,这样可能会掩盖一些严重的错误。 - Jens Gustedt