[英]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.