QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 596|回复: 6

请教

[复制链接]
发表于 2004-9-6 22:28:07 | 显示全部楼层 |阅读模式
请问strcpy与=的区别.
比如说:
char *s;
s="abc";
strcpy(s,"abc");

请问两者的区别,因为我有时候用=时会出段错误,谢谢.
发表于 2004-9-6 23:50:16 | 显示全部楼层
=嘛,就是赋值,strcpy则会拷贝内存里的内容。
strcpy是把一块内存里的内容拷贝到另一块内存空间里,所以你给出的代码里因为没有给指针s分配空间,所以那样strcpy会出错,
至于=……我说不清……
回复

使用道具 举报

发表于 2004-9-7 09:22:08 | 显示全部楼层
s="abc"是让字符型指针s指向"abc",变的是指针的值s.
strcpy(s,"abc"),这个是把"abc"拷贝到s指向的内存区域里,指针s的值不变.在这里,s在用前要先申请内存.
回复

使用道具 举报

发表于 2004-9-7 10:06:31 | 显示全部楼层
[quote:7df05390df="mozilla"]s="abc"是让字符型指针s指向"abc",变的是指针的值s.
strcpy(s,"abc"),这个是把"abc"拷贝到s指向的内存区域里,指针s的值不变.在这里,s在用前要先申请内存.[/quote]
正解
回复

使用道具 举报

 楼主| 发表于 2004-9-8 21:25:11 | 显示全部楼层
谢谢,我知道在使用之前要分配,谢谢各位,我以后也会尽量多学一点东西的。
回复

使用道具 举报

发表于 2004-9-8 22:45:34 | 显示全部楼层
假如char* s="abc";
那么这个"abc"是存在哪的?
回复

使用道具 举报

发表于 2004-9-9 09:33:30 | 显示全部楼层
存在指针s指向的内存,在栈区
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-7 13:29 , Processed in 0.113719 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表