繁体   English   中英

C中全局指针与局部指针的动态内存分配

[英]Dynamic Memory Allocation of global pointers vs local pointers in C [duplicate]

这个问题已经在这里有了答案:

我正在尝试为双指针分配值,但我无法做到这一点,因为当我的指针在本地声明时,它工作正常,而当我在全局中声明它时,则它不工作。 这是上述情况的代码

// Declared Globally, Not Working

#include<stdio.h>
#include<stdlib.h>
int **x;
int main() {
   x=(int**)malloc(sizeof(int*));
   x[1][2]=10;
   printf("%d",x[1][2]);
}

// Declared Locally, Working fine

#include<stdio.h>
#include<stdlib.h>
int main() {
   int **x;
   x=(int**)malloc(sizeof(int*));
   x[1][2]=10;
   printf("%d",x[1][2]);
}

在两种情况下,它都是无效的代码。 您需要先为指针分配内存,然后再为对象分配内存。 您只能为指针分配空间,而不能为对象分配空间。

是UB

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM