簡體   English   中英

將int值存儲到char *-C ++?

[英]Store int value into char* - C++?

我已將一塊內存分配為(char *),我希望能夠在其中存儲一個整數。

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;    

但是,每次編譯時,似乎都出現了分段錯誤。 我怎樣才能解決這個問題? 謝謝!

for循環是不必要的。 我不確定它要完成什么。 memcpy可以,除了您要使用已經是指針的arr地址。 這將起作用:

char * arr = new char[50];
int num = 9;

memcpy(arr, &num, sizeof(num));

cout<<"Contents of arr: "<< ((int *)arr) <<endl;

也許您的for循環正試圖這樣做:

char * arr = new char[50];
int num = 9;

*((int *)arr) = num;

cout<<"Contents of arr: "<< ((int *)arr) << endl;

也可以。

編輯:數組的內容不可直接打印,至少沒有任何含義(並且可能由於沒有零終止而崩潰)。 假設您希望它看起來像一個整數,我已經編輯了上面的代碼。 C ++純粹主義者可能會反對使用C樣式轉換而不是reinterpret_cast <>,但這是一個單獨的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM