为什么在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也试过,一样!


...全文
85 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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下,呵呵...

70,021

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧