Moxa嵌入式编程:奇怪的错误

时间:2015-07-01 13:55:40

标签: c++ embedded embedded-linux microcontroller

我目前正在开发一个项目,我们正在使用运行Linux的Moxa EM-1220-LX,使用C ++对其进行编程。在开发过程中,我遇到了一个古怪的错误。

我有以下代码:

std::string vector_to_string(std::vector<int> vec) {
    std::stringstream ss;
    for (int i = 0; i < vec.size(); i++) {
        ss << vec[i] << ".";
    }
    return ss.str();
}

void print_string(std::string text) {
    std::cout << text << "\n";
}

std::vector<int> local_vector;
local_vector.push_back(123);
local_vector.push_back(456);
local_vector.push_back(789);

//Case 1: Prints 456.789.
print_string(vector_to_string(local_vector));

//Case 2: Prints 123.456.789.
std::string temp = vector_to_string(local_vector);
print_string(temp);

任何人都知道为什么在案例1中移除了向量中的第一个条目,但在案例2中工作正常吗?

1 个答案:

答案 0 :(得分:0)

我无法通过编译问题中的代码来重现您的问题。 Perphaps你在代码中的其他地方有一个错误导致堆/堆损坏。

旧答案:你似乎有一个错误:

docker run -d --link dtbase  -e MYSQL_USERNAME=root -e MYSQL_ROOT_PASSWORD=123  --name phpmyadminnew -p 80 corbinu/docker-phpmyadmin

中间线不应该是for (int i = 0; i < vec.size(); i++) { ss << vec << "."; } 吗?这可以很好地解释为什么你的矢量打印不正确。