【发布时间】:2020-12-10 02:38:09
【问题描述】:
我有以下二维向量:
vector<vector<unsigned char>> dates;
我还有以下无符号字符数组:
unsigned char date[3] = {1, 18, 108};
当我将 push_back 这个数组设置为 dates 时,它会将所有 unsigned char 元素设置为 204:
date = ADP::addDay(date);
cout << int(date[0]) << '-' << int(date[1]) << '-' << int(date[2]) << endl;
dates.push_back({ date[0], date[1], date[2] });
cout << int(date[0]) << '-' << int(date[1]) << '-' << int(date[2]) << endl;
输出:
1-18-108
204-204-204
我在这里缺少什么吗?我认为这是将 char 转换为 ASCII 的问题,但我真的不确定。
编辑
addDay() 看起来像这样:
unsigned char* addDay(unsigned char datep[3]) {
unsigned char date[3];
date[0] = datep[0];
date[1] = datep[1];
date[2] = datep[2];
... modifys date ...
return date;
}
所以它返回一个指针。这可能是一个问题吗?
【问题讨论】:
-
您能否在edit 您的问题中包含minimal reproducible example - 我们可以编译和运行以重现问题的代码?
-
在online compiler 上试一试,你确定你的输出没有什么意外吗?
-
我不知道是什么导致了这个问题。当我在另一个文件上运行时,我没有遇到问题。我真的不知道什么是足够的代码来发布。我希望有人能看到我的程序的结构并看到一个可能的问题。
标签: c++ vector unsigned-char