我已經分配了一塊內存(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