【发布时间】:2021-03-19 07:03:11
【问题描述】:
#include<iostream>
#include<string>
#include<sstream>
#include <typeinfo>
using namespace std;
int main()
{
setlocale(LC_ALL, "");
string str = "5 7 3";
int length = str.length();
char* arr = new char[length];
cout << arr[2] << endl;
/*
int max = stoi(string(1, arr[0]));
for (int i = 0; i < length; i++) {
if(arr[i] != ' '){
if (stoi(string(1, arr[i])) > max) {
max = stoi(string(1, arr[i]));
}
}
}
cout << max << endl;
*/
delete[] arr;
}
我在尝试计算 arr[2] 时收到错误 C6385“读取无效数据”。例如,当我尝试计算 arr[0] 时,我在控制台中得到 char 'H',我真的不明白如果我的 str 中没有 H,为什么会有 'H'
【问题讨论】:
-
arr 为空。你在哪里填写任何类型的信息?
-
arr是一个长度为 5 的 char 数组,但内容未知。H只是你当时记忆中的随机垃圾。 -
为什么不应该是 H?使它不是 H 的部分在哪里?