Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
4年前关闭。
当您在C中声明静态变量时,
说您编写了这样的程序:
还有,为什么需要强制转换
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
4年前关闭。
当您在C中声明静态变量时,
说您编写了这样的程序:
int *c;
void foo(){
c = (int *) malloc (10*sizeof(int));
c = &c[3];
*c = *&c[3];
}
*c
是什么意思?我的意思是我理解*
表示它指向某物,但是*c
会做什么?还有,为什么需要强制转换
(int *)
的返回值? 最佳答案
当您在C中声明静态变量时
与此问题无关,或与您显示的代码无关。
但是* c做什么?
假设您的问题与语句*c = *&c[3];
有关,则它指向c
持有的地址处的对象。
为什么要在malloc前面强制转换(int *)?
你不应该。请do not cast malloc()
[和家庭]的返回值。
注意:您的代码段非常差,并且是错误的做法,最有可能是无效的。 c = &c[3];
明显的内存泄漏。
关于c - 当您在c中声明静态变量时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28293110/
10-09 02:14