繁体   English   中英

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

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

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

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

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

// 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]);
}
1 个回复

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

是UB

1 C中的指针和动态内存分配

我对C语言还很陌生,并且对指针和动态内存分配有些困惑。 我想做的是从命令行参数中读取并将其存储在动态内存分配中。 然后将它们打印出来。 例如,如果我输入./rpd 4 3 2 3 8,则应减小argv [1](4),然后跟随其他3个值(3、2、3、8)。 输出应如下所示: 人1有3 ...

2 c中的指针和动态内存分配

我从输入文本文件读取行,我将行存储在数组array1中 一旦我完成阅读id喜欢打印出数组中的元素..我喜欢做动态内存分配..但那是我得到这部分工作..我的代码到目前为止: input1.txt 输出: 我想要它做的是打印每个元素..但它打印每行的第一个字符..什么导致 ...

3 C中的指针中的动态内存分配

问题是:**写一个程序t在运行时分配内存并排序一组名称。 char * name [] = {“ Bilal”,“ Areeba”,“ Raheem”,“ Danish”,“ Zainab”,“ Fatima”} ** 我正在此步骤中进行操作,请帮帮我: strcpy((*(name+j ...

6 C ++中的指针结构和动态内存分配

我有两个结构,第二个结构中嵌套了第一个结构: 现在的问题是第二结构必须通过指针动态分配。 同样,嵌套的第一结构必须是通过指针动态分配的数组,该数组的大小必须通过输入文件读取。 我知道如何阅读它,但我不知道如何访问它。 例如,假设大小为8。给定指针的格式,我将如何为第二个结构指定 ...

7 C 中指向 char 的指针数组的动态内存分配

我正在构建一个单词计数器程序。 为了实现这一点,我正在考虑保存用户输入的字符串,并使用 strtok() 将句子以空格作为分隔符。 但首先我想为每个单词分配足够的内存。 假设句子是“Hello World”。 我已经为字符串本身动态分配了内存。 现在我想将 Hello World 分成 2 个字符串 ...

8 指针的内存分配[重复]

这个问题已经在这里有了答案: 复合/字符串文字在哪里存储在内存中? 4个答案 我有以下程序: 在这里,它可以正确打印问候,而如果rt不是像char rt [] =“ hello”这样的常量指针,则它可以打印垃圾。 我的理解是,当函数从测试返回时,在后一个 ...

9 C中的指针和内存分配

程序: 问题:有什么区别: 从我的理解* z指向x和* y的地址指向x,但是* y指向x不需要x的地址? 我真的不明白这两个变量是怎么回事。 编辑:我也想知道何时知道何时在堆栈上或堆上分配变量? 为什么在堆栈上分配x,y和z? 为什么* y,** y,* ...

10 C中的内存分配和指针

我正在为考试而学习,遇到了难以理解的问题。 我们正在使用指针和内存分配,而我只是在鬼混,试图看看什么改变了什么。 我有这段代码: 但是我发现的是,如果我不使用* arr [index] = i,而是使用arr [index] =&i,则不需要malloc 。 我一直认为这两件事本质 ...

暂无
暂无

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

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