看不懂 发表于 2017-12-4 21:03:27

c++文件copy问题

各位高手快来瞧瞧!

BngThea 发表于 2017-12-4 22:26:49

对于cin,除了数据本身,你还要负责流的清理

lyjlyj 发表于 2017-12-5 11:32:18

指针使用时,要初始化,就是要给指针赋值,指向一块地址
如果是数组,s1表示的是一个地址常量

qq1242009750 发表于 2017-12-5 16:55:15

指针没有指向有效的内存空间。

闪电猫网络 发表于 2017-12-5 18:38:48

第一个是数组,数组定义的时候就已经分配了一块内存空间,是在栈内。
第二个是指针,没有初始化就是随机指向的一个地址,这个地址往往是不可写的,需要申请堆空间,malloc或new

看不懂 发表于 2017-12-5 19:59:18

闪电猫网络 发表于 2017-12-5 18:38
第一个是数组,数组定义的时候就已经分配了一块内存空间,是在栈内。
第二个是指针,没有初始化就是随机指 ...

可是如果我是用char * s= "";为什么也不行啊

看不懂 发表于 2017-12-5 19:59:42

qq1242009750 发表于 2017-12-5 16:55
指针没有指向有效的内存空间。

可是如果我是用char * s= "";也是不行的


看不懂 发表于 2017-12-5 20:00:22

lyjlyj 发表于 2017-12-5 11:32
指针使用时,要初始化,就是要给指针赋值,指向一块地址
如果是数组,s1表示的是一个地址常量

如果我是用char * s= "";算初始化吗?

看不懂 发表于 2017-12-5 20:01:11

BngThea 发表于 2017-12-4 22:26
对于cin,除了数据本身,你还要负责流的清理

什么意思呀,没懂

lyjlyj 发表于 2017-12-5 20:22:47

看不懂 发表于 2017-12-5 20:00
如果我是用char * s= "";算初始化吗?

你赋值为空,不算初始化
就算赋值char *s=“aaa”;由于aaa存在文本空间中,是不能改变的
所以s='b';执行会出错,访问了非法空间
指针变量常见用法:就是将一个已经声明的变量的地址赋值给指针变量
int a;
int *p;
intb={0};
p=&a;
p=a;

看不懂 发表于 2017-12-9 19:12:26

lyjlyj 发表于 2017-12-5 20:22
你赋值为空,不算初始化
就算赋值char *s=“aaa”;由于aaa存在文本空间中,是不能改变的
所以s='b'; ...

最后一句是不是错了

lyjlyj 发表于 2017-12-9 22:35:34

看不懂 发表于 2017-12-9 19:12
最后一句是不是错了

不能赋值,执行会出错
页: [1]
查看完整版本: c++文件copy问题