有什么方法可以将在 main()
函数中初始化的指针移动到第一个可执行函数并在整个程序中访问它?
代码如下:
main函数,指针d
初始化的地方:
void main(){
int x;
deque *d;
d=(deque*)malloc(sizeof(deque));
initDeque(d);
我想将指针移动到名为 initDeque()
void initDeque(deque *d){ //Create new deque
d->front=NULL;
d->rear=NULL;
}
可以移动吗?
最佳答案
如果“移动指针”的意思是您想要移动变量声明,那么您可以这样做,但它将成为一个只能在该函数内部访问的局部变量。显然不是您想要的。
您需要将其设为全局,以便从所有范围访问它。请注意,全局变量被认为是丑陋的,会增加出错的风险,并且通常会使代码不那么清晰。
使用全局指针,它看起来像这样:
deque *d;
void initDeque(void)
{
d = malloc(sizeof *d);
d->front = d->rear = NULL;
}
注意你shouldn't cast the return value of malloc()
in C .
另请注意,没有人 会有一个使用单个小写字母命名的全局变量。 方式很容易将其与局部变量混淆,因此您至少应该使名称更明显,例如像
deque *theDeque;
关于c - 将指针从 main() 移动到第一个可执行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28718903/