c ++ memcpy从char数组到整数

时间:2012-12-26 08:06:19

标签: c++

我正在尝试从memcpy()到整数变量执行charArray。复制已完成,但在尝试打印复制的值时,会打印一些垃圾。按照我的代码。

填充是否有任何问题?

#include <iostream>
#include "string.h"

using namespace std;

int main()
{
    char *tempChar;
    string inputString;
    int tempInt = 3;

    cout << "enter an integer number" << endl;
    cin >> inputString;
    tempChar = new char[strlen(inputString.c_str())];   
    strcpy(tempChar, inputString.c_str());  
    memcpy(&tempInt, tempChar, sizeof(int));
    cout << endl;
    cout << "tempChar:" << tempChar << endl;
    cout << "tempInt:" << tempInt << endl;

    return 0;
}

1 个答案:

答案 0 :(得分:3)

是的:你弄乱了记忆。

使用:stoi()将std :: string转换为整数:

int tempInt(stoi(inputString));

完整示例:

#include <cstdlib>
#include <iostream>
#include <string>

int main() {

   std::string tmpString;
   std::cin >> tmpString;

   int const tmpInt(stoi(tmpString));

   std::cout << tmpInt << std::endl;

  return 0;
}