gpt4 book ai didi

c++ - 声明类对象数组时崩溃

转载 作者:行者123 更新时间:2023-11-28 00:31:47 24 4
gpt4 key购买 nike

我想为我的实用程序声明一个类对象数组。我尝试如下声明但出现异常。无法理解我做错了什么。这是代码部分。

#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] ;一切正常。但是如果我按原样运行上面的代码,它会抛出以下异常:

First-chance exception at 0x00d31556 in String1.exe: 0xC0000005: Access violation writing location 0x00d320fd.

我无法理解我在声明类对象数组时做错了什么。

最佳答案

错误不是由数组引起的,而是由于您正在使用 cin 将输入保存到未初始化的指针:

char *string;
cin>>string;

char *string 未初始化,因此取消引用它会导致异常。像你应该的那样使用 std::string:

std::string;
cin >> string;

关于c++ - 声明类对象数组时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22599380/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com