声明类对象数组时崩溃
Crash while declaring Array of class objects
我想为我的实用程序声明一个类对象数组。我试着声明如下,但得到了一个例外。无法理解我做错了什么。这是代码部分。
#include<iostream>
#include<conio.h>
using namespace std;
struct charFreqPair{
public: charFreqPair();
charFreqPair(char,int);
~charFreqPair(){}
char ch;
int freq;
};
charFreqPair::charFreqPair(){
}
charFreqPair::charFreqPair(char c , int f){
ch = c;
freq = f;
}
int main(int argc , char **argv){
char *string;
cout<<"Enter String"<<endl;
cin>>string;
charFreqPair array[128] ;
getch();
}
如果我通过注释运行上面的代码:charFreqPair数组[128];一切都很好。但如果我按原样运行上面的代码,它会抛出以下异常:
String1.exe中0x00d31556处的首次机会异常:0xC0000005:写入位置0x00d320fd的访问冲突。
我不明白我在声明类对象的数组时做错了什么。
错误不是由数组引起的,而是由您使用cin
将输入保存到未初始化的指针中的事实引起的:
char *string;
cin>>string;
char *string
未初始化,因此取消引用会导致异常。应使用std::string
:
std::string;
cin >> string;
不能只写入不指向任何位置的指针。难怪你会有例外,你是在随机记忆中写作。在使用string
之前进行分配。
相关文章:
- 类对象数组的问题会导致崩溃
- 字节数组初始化会导致 DirectX 崩溃
- 使用 sf::Text 数组时崩溃
- For 循环在尝试读取数组 c++ 时程序崩溃
- 删除数组 c++ 崩溃问题
- 如果类的成员,C++数组会导致崩溃
- 在C++中删除指针数组时析构函数崩溃
- 在 C++ 中使用平展数组语法,崩溃取决于宽度/高度
- 我的单例中的数组在离开函数后没有保留信息,然后在尝试再次访问信息时崩溃
- C++ rezing 动态数组最多可以处理一定数量的元素,但在某些时候会崩溃并显示错误 (0XC0000005)
- 释放字符的动态数组时崩溃
- size_t结构非数组成员崩溃的强制转换
- C++程序在迭代到数组的最后一个元素时崩溃
- 从数组比较2个字符串时,程序崩溃
- C++ 尝试向类内的数组(或向量)添加值时程序崩溃
- 内存相关崩溃:Cocos2d游戏中的三维数组
- 尝试获取数组中的最小元素时崩溃
- 动态数组在构造函数处崩溃
- 使用数组的单向链表:它在运行时崩溃
- C 程序崩溃(数组和2个指针Binsearch功能)