所以这是代码。
#include <stdio.h>
#define MAXOUTPUT 10
void copy_n(char des[], char src[], int n);
int main(void)
{
int i;
char output[MAXOUTPUT];
copy_n(output, "SomeTestInputHere", 26);
printf("%s\n", output);
for(i=0;output[i]!='\0';i++)
printf("%c\n", output[i]);
return 0;
}
void copy_n(char des[], char src[], int n)
{
int i;
for(i=0;i<MAXOUTPUT;i++)
{
if(i<n)
des[i]=src[i];
else
des[i]='\0';
}
}
为什么用char打印字符串或char时不会崩溃?终止NUL从哪里来? 它适用于Reek在C上的指针,并且应该复制n个字符,填充NUL时,des&gt; = src.But当src&gt; des它应该复制所有字符而不终止NUL。
答案 0 :(得分:0)
您的copy_n
函数for
循环使用常量MAXOUTPUT
作为循环中的保护;并且MAXOUTPUT
的值为10.