我正在尝试从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;
}
答案 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;
}