我已经分配了一块内存(char *),我希望能够存储一个整数。将int值存储到char * - C++?
char * arr = new char[50];
int num = 9;
for(int i = 0; i < sizeof(int); i++)
{
*((int *)arr) = arr[i];
}
memcpy(&arr, &num, sizeof(num));
cout<<"Contents of arr: "<<arr<<endl;
但是,无论何时编译,我似乎都会遇到分段错误。我怎样才能解决这个问题?谢谢!
我想我需要将这些(char *)字节先转换为int字节,才能将int写入该内存块,但我猜测这是错误的。 – user5620123
您的代码存在多个问题。你为什么从0迭代到'sizeof(int)'?你为什么要将值_from_'arr'复制回'arr'?你在循环的右括号中有一个语法错误 - '''代替'}'。根据“[如何提出问题](http://stackoverflow.com/help/how-to-ask)”中的要求,代码必须正确。 – Tony