我在 C 中玩 strncpy 并且遇到了一些麻烦。
代码如下:
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
char src[] = "Benjamin Franklin";
char dest[5];
strncpy(src, dest, sizeof(dest) / sizeof(char));
dest[5] = '\0';
printf("%s\n", dest);
return 0;
}
使用以下代码编译没有错误:
gcc -Wall -g -Werror test.c -o test
并打印出乱码
p4��
我无法真正理解我做错了什么,特别是因为我已经玩了很多并且一直在网上寻找答案。也许因为我正在使用数组,所以我将地址传递给 printf 而没有意识到它?