C语言,怎么把一个指针的内容复制到另一个指针?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言,怎么把一个指针的内容复制到另一个指针?相关的知识,希望对你有一定的参考价值。

struct student

char name[20];
int grade;
struct student *next;
;

struct student *Reverse(struct student *head)

int grade;
char nam[20];
struct student *p1,*p2,*head2;
head2=NULL;
p1=head;
while(p1!=NULL)

p2=(struct student *)malloc(sizeof(struct student));
grade=p1->grade,strcat(nam,p1->name);
※ p2->grade=grade,p2->name=nam);
p2->next=head2,head2=p2;
p1=p1->next;

return(head2);


c的那行,Lvalue reqrired
改成,strcat(p2->name,nam);可以吗?
想把p1的内容写到p2里面去。是创建新链表,不是改原来的链表,。

直接对指针进行赋值即可实现把一个指针的内容复制到另一个指针。


下面举例来说明具体的操作过程:

int *p1=(int *)malloc(sizeof(int)); // 定义一个int类型的指针变量p1,并分配存储单元
int *p2;  // 定义一个int类型的指针变量p1,没有分配存储单元
*p1 = 4;  // 对指针p1指向的存储单元赋值
p2 = p1;  // 将指针p2也指向指针p1指向的存储单元,即*p2=4
printf("%d", *p2);  // 输出4

参考技术A strcpy(nam,p1->name);
p2->grade=grade;
strcpy(p2->name,nam);

strcat 是连接两个字符串的,如果多连接几个, nam就会溢出数组了……
strcpy 才是拷贝字符串的正确函数。本回答被提问者采纳
参考技术B 结构体的好处就是,他可以直接赋值,所以
grade=p1->grade,strcat(nam,p1->name);
※ p2->grade=grade,p2->name=nam);
可以直接*p2 = *p1;
你试试
参考技术C 应该用strcpy()复制字符串:

strcpy(p2->name,p1->name);

以上是关于C语言,怎么把一个指针的内容复制到另一个指针?的主要内容,如果未能解决你的问题,请参考以下文章

C:试图将指针值复制到另一个指针中,得到可修改的左值错误

C语言怎么将结构体的内容复制到另一个结构体中

在同一进程中和两个进程之间将字符串从一个指针复制到另一个指针

用C语言写一个程序实现以下功能

OpenCV如何将GpuMat复制到另一个GPU指针并复制回来以验证正确性?

C语言 怎样让一个指针的内容传给一个变量