这是一段代码,用于将一个指针复制到另一个指针。 错误是段错误(核心已转储)
#include<stdio.h>
char strcp(char *,char *);
int main()
{
char *p="string",*q;
printf("%s",p);
strcp(p,q);
printf("%s",q);
return 0;
}
char strcp(char *p,char *q)
{
int i;
for(i=0;*(p+i)!='\0';i++)
*(p+i)=*(q+i);
}
最佳答案
char *p="string"...
strcp(p,q);
p
指向的是一个文字,文字是只读的。禁止尝试向其中复制任何内容(并导致段错误)。
...并且q
未初始化,这是seg错误的另一个可能原因。
关于c - 这个有错误的 C 代码有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43437333/