• 全部
  • 问答

为什么在win2000下,我写的cpp有问题?

yesman 2002-01-29 12:22:42
#include <iostream>
class firstclass
{
public:
char* name;
};
int main(int argc, char *argv[])
{
firstclass first;
cin >>first.name;
return 0;
}

运行到cin是有发生的问题,

"0x004017f0"指令引用的"0x0000023f"内存。该内存不能为"written"。

编译器是dev-c++,vc也试过,一样!


...全文
39 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
bjhz 2002-01-31
name=new char[SIZE];
或者你别用 char* ,直接用一个std::string
=========================================
#include <string>
#include <iostream>

using namespace std;

class firstclass
{
public:
string m_sName;
};
int main(int argc, char *argv[])
{
firstclass first;
cin >>first.m_sName;
return 0;
}

这样多好,不用自己做繁重的内存管理。

回复
panjet 2002-01-29
因为 name 没有被初始化,是一个不确定的 char * 型指针。
回复
yesman 2002-01-29
多谢大虾,不过怎么初始化呢?
回复
kinghawk 2002-01-29
上面的完全赞同!
对于指针型,在使用前都要先初试化,这是个好习惯!
回复
SaintNiya 2002-01-29
panjet说得没错,这种写法在dos下基本没什么问题,不过到了win32下,呵呵...
回复
相关推荐
发帖
C语言
创建于2007-09-28

6.3w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2002-01-29 12:22
社区公告
暂无公告