我试图从一个字符串中读取两个连续的字符,然后将两个字符传递给另一个字符串。代码如下,但它给我分段错误!我做错了什么?
char *st = malloc(16*sizeof(char));
char *string = "purpleredblue";
int i;
int x=0;
while(x<=16)
{
for(i=x;i<=x+2;i++)
{
*st++=*string++; //copies content from string to st
}
x+=2;
}
printf("%s\n",st);
答案 0 :(得分:0)
您的代码完全错误。这可能会有所帮助:
char *buffer = (char*)malloc(16 * sizeof(char));
char *source = "purpleredblue";
char *dst = buffer;
char *src = source;
char *end = source + strlen(source);
while (src <= end)
{
strncpy(dst, src, 2);
dst += 2;
src += 2;
}
printf("%s", buffer);