gpt4 book ai didi

c - C 中复制字符串的确切方法是什么?

转载 作者:行者123 更新时间:2023-11-30 16:45:47 25 4
gpt4 key购买 nike

我正在编写自己的 memcpy() 函数。我正在将源字符串复制到目标。复制时,出现“段错误”错误。我正在使用代码块。谁能解释为什么?我是否错误地复制了字符串?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct node
{
char info;
struct node *next;
}mynode;


void mymemcpy(void*,const void*,size_t);

int main()
{
char *p="sonampulkit";
char *q=p+2;
mymemcpy(q,p,strlen(p)+1);
printf("\n final dest=%s ",q);
printf("\n final src=%s ",p);
return 0;
}

void mymemcpy(void* to,const void* from,size_t n)
{
char *src=(char*)from;
char *dest=(char*)to;
printf("source=%s",src);
printf("\ndestination=%s",dest);
printf("\nsize=%d",n);
int i=0;
for(i=0;i<n;i++)
{
printf("\ndest=%c",*(dest+i));
printf("\nsrc=%c",*(src+i));
// At below line , error occurred.
dest[i]=src[i];
}
return dest;
}

错误:程序收到段错误。

最佳答案

char *p="sonampulkit";

p - 是指向字符串文字的指针,C 标准禁止更改内存:这是未定义的行为。

关于c - C 中复制字符串的确切方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43983186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com