Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 分配给整数指针地址的字符指针地址_C++_C_Pointers - Fatal编程技术网

C++ 分配给整数指针地址的字符指针地址

C++ 分配给整数指针地址的字符指针地址,c++,c,pointers,C++,C,Pointers,我正在尝试做一些非常简单的事情,至少我想,但没有成功。我想把整数指针指向的地址分配给char指针指向的地址。范例 //C++ int *pointerint; char *pointerchar; pointerchar = pointerint; // 我尝试过几种不同的方法,但都没有成功 例如: pointerchar = (char *) &pointerint; 编译器将其排除在外,但分配给指针的地址为零。这不可能是正确的。谁能告诉我如何正确地做这件事,我做错了什么。提前

我正在尝试做一些非常简单的事情,至少我想,但没有成功。我想把整数指针指向的地址分配给char指针指向的地址。范例

//C++

int *pointerint;
char *pointerchar;
pointerchar = pointerint;

//
我尝试过几种不同的方法,但都没有成功

例如:

pointerchar = (char *) &pointerint;
编译器将其排除在外,但分配给指针的地址为零。这不可能是正确的。谁能告诉我如何正确地做这件事,我做错了什么。提前感谢您的帮助。

试试(如果是C):

尝试(如果是C):


现在你有了C答案,这里有一个C++:

int *pointerint;  
char *pointerchar;
//initialize pointerint
pointerchar = reinterpret_cast<char*>(pointerint);
int*pointerint;
字符*指针字符;
//初始化指针
pointerchar=重新解释(pointerint);

注意,如果你不初始化<代码> PoTeNTIT< /C>,你会遇到未定义的行为。

< P>现在你有了C答案,这里是C++:

int *pointerint;  
char *pointerchar;
//initialize pointerint
pointerchar = reinterpret_cast<char*>(pointerint);
int*pointerint;
字符*指针字符;
//初始化指针
pointerchar=重新解释(pointerint);

请注意,如果不初始化
指针int
,您将遇到未定义的行为。

这是正确的,但为了扩展,您在那里所做的是键入指针的地址。由于
pointerint
已经是一个指针,您不需要再次使用
&
运算符。这里我转换指针的值,而不是指针的地址(OP所做的)。@LuchianGrigore我假设他初始化了
pointerint
指针。即使没有初始化pointerint,它也会工作。你只需要把电话号码抄过来就行了。您正在更改的只是指向的数据的语义。@slugonamission未初始化的指针是无效指针,访问(甚至只是读取)无效指针是未定义的行为。这是正确的,但为了扩展,您在那里做的是键入指针的地址。由于
pointerint
已经是一个指针,您不需要再次使用
&
运算符。这里我转换指针的值,而不是指针的地址(OP所做的)。@LuchianGrigore我假设他初始化了
pointerint
指针。即使没有初始化pointerint,它也会工作。你只需要把电话号码抄过来就行了。您正在更改的只是指向的数据的语义。@slugonamission未初始化的指针是无效指针,访问(甚至只是读取)无效指针是未定义的行为。从答案中可以看出,这确实非常简单。。。但你为什么要这么做?这通常是一个危险的操作,尤其是在新手手中。从答案中可以看出,这确实非常简单。。。但你为什么要这么做?这通常是一个危险的操作,尤其是在新手手中?你的意思是“如果你不初始化指针”。。。您只需设置pointerchar,不需要初始化它。@JimBalter true。这就是我的意思。:)我一直喜欢C++的答案,是:+1-是正确的答案,这对C也是如此,初始化指针是关键!另外,我需要减去3作为最后一个指针,以在单词中的MSB处启动char指针,byte 0.pointers?你的意思是“如果你不初始化指针”。。。您只需设置pointerchar,不需要初始化它。@JimBalter true。这就是我的意思。:)我一直喜欢C++的答案,是:+1-是正确的答案,这对C也是如此,初始化指针是关键!另外,我需要减去3作为最后一个指针,以在字的MSB处启动char指针,字节0。