菜鸟提问:strcpy(char *, const char *)为什么报错?
strcpy(char *, const char *)为什么报错?
最好给一些详细的堆栈上的处理过程
问题点数:0、回复次数:20Top
1 楼zlhran(楚云飞)回复于 2004-12-01 21:23:39 得分 0
?????????????Top
2 楼milozy1983(Detective)回复于 2004-12-01 21:26:59 得分 0
类型不匹配吧,和函数的具体过程有关Top
3 楼zxm927(淡泊明志)回复于 2004-12-01 21:33:55 得分 0
库函数怎么会报错,肯定是你调用不对了.总得把你的调用代码拿出来show一下吧.Top
4 楼xidwong(小熊)回复于 2004-12-01 21:57:29 得分 0
就是,光贴一个库函数,谁知道你是怎么用得啊。Top
5 楼xtzyz()回复于 2004-12-01 22:18:48 得分 0
push const char *
push char *
call strcpy
大概就是这样Top
6 楼ywfscu(乌雕)回复于 2004-12-01 22:41:54 得分 0
你没有保证第二个字符串以‘\0'结尾?????Top
7 楼caijize(砂子)回复于 2004-12-01 22:45:43 得分 0
有没有Include头文件啊?Top
8 楼rowdy(阿丘)回复于 2004-12-01 22:47:26 得分 0
楼上的,
在问些啥子哦???Top
9 楼greenteanet(扎扎实实打基础,保持一颗平常心。)回复于 2004-12-01 23:42:04 得分 0
楼主这样子写,应该没有错误,可能是您在调用函数的时候,或者您的const没有结束标记.还是把您的代码贴出来,大家也许可以帮您一下.Top
10 楼lr_eagle(LOSER)回复于 2004-12-02 09:54:59 得分 0
#include "stdafx.h"
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
char *ch = "asdf";
strcpy(ch, "1234");
printf(ch);
printf("\n");
return 0;
}
错误:该内存不能写
改成char ch[5] = "asdf"; 就好使了
这好像是个很经典的问题,我以为大家一看就知道呢,呵呵Top
11 楼bailindf(DF)回复于 2004-12-02 10:36:32 得分 0
问题在于你定义的char *ch="asdf";
此定义将"asdf"视为字符串常量,存放在静态存储空间中,不可变。
应该定义为char ch[]="asdf";Top
12 楼micemice(方法)回复于 2004-12-02 10:47:34 得分 0
在哪里发新贴?找不到啊
问题:const是什么啊?Top
13 楼andyzhouji(无心之梦)回复于 2004-12-02 11:21:49 得分 0
你的char *ch都没分配空间,指针是随便指的当然包错了!!
后来的树组有空间就OK了!Top
14 楼bugbugfly(君住长江头)回复于 2004-12-02 12:47:46 得分 0
同意 micemice(方法)Top
15 楼bugbugfly(君住长江头)回复于 2004-12-02 12:49:10 得分 0
错了,是bailindf(DF)Top
16 楼micemice(方法)回复于 2004-12-02 13:21:40 得分 0
问题请教:
1.String & operate=(const String &other);是什么意思?
2.other.m_data是什么意思?
class String {
public:
String & operate=(const String &other);
private:
char *m_data;
};
String::string(const String &other)
{
int length strn(other.m_data);
...
}Top
17 楼sunlu_eric(天使预备役)回复于 2004-12-02 13:22:29 得分 0
同意楼上的,空间已经分配了!!!
Top
18 楼sunlu_eric(天使预备役)回复于 2004-12-02 13:24:14 得分 0
那是运算符重载,
下面的是调用类的数据成员!!!
这是类,看看!!!Top
19 楼yingwei19800524(应伟)回复于 2004-12-02 16:52:07 得分 0
你没有保证第二个字符串以‘\0'结尾?????
Top
20 楼qiqi162002(思想)回复于 2004-12-02 17:23:48 得分 0
char *ch = "asdf";//这里的ch为常量字符串,不能改变其值,
定义成数组才行Top
相关问题
- 为什么从const char*类型向char*赋值会报错,而从const char向char赋值就没问题?
- error C2664: 'strcpy' : cannot convert parameter 2 from 'class CString (void) const' to 'const char *'
- const char* const* const* p;
- 使用static const int size=100为什么会报错?
- 在类中定义static const int a=10 报错
- 为什么截取wm_char消息老报错?
- 请教一题:如何不调用C库函数实现char *strcpy(char* strDest,const char* strSrc).来者有分!
- 请教一题:如何不调用C库函数实现char *strcpy(char* strDest,const char* strSrc).来者有分!
- operator char*() const {return ...;}
- const char *和ansistring




