腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
为什么
指针
分配
的
内存会在
函数
之后
持续
存在
,
而
不是
数组
之后
?
、
、
、
、
因此,我在C++书中看到
的
一个基本文本输入
函数
的
上下文中提出了这个问题:{ cin >> temp; strcpy(pn, temp);} 所以temp声明了一个包含80个字符
的
数组
,这是一个自动变量,一旦getString()返回,它
的
内存就会被释放。有人建议,如果由
浏览 0
提问于2010-08-11
得票数 4
1
回答
使动态
分配
的
内存空闲。
、
、
目前,我正在学习
指针
和静态/动态内存
分配
。在下面的代码中,我有一个3D
数组
。变量
数组
是指向
指针
mat3***
的
指针
。我了解到malloc从堆中
分配
内存并返回一个
指针
。
函数
free释放该内存。mat3[i][j][k] = i + 10*j + 100*k; show(mat3,m,n,p); free(mat3);所以,在演示完3D
数组
之后</em
浏览 3
提问于2020-10-10
得票数 0
回答已采纳
9
回答
为什么
要在堆上
而
不是
堆栈上
分配
内存?
、
、
、
、
可能重复: 我读过一些关于堆和堆栈
的
其他问题,但它们似乎更多地关注堆/堆栈
的
功能,
而
不是
为什么
要使用它们。在我看来,堆栈
分配
几乎总是首选
的
,因为它更快(只是移动堆栈
指针
,
而
不是
在堆中寻找空闲空间),并且在使用完
之后
不必手动释放
分配
的
内存。我看到使用堆
分配
的
唯一原因是如果您希望在
函数
中创建一个对
浏览 12
提问于2009-10-11
得票数 24
回答已采纳
4
回答
为什么
没有内置
函数
来查找C中
指针
数组
的
大小?
、
free()只需要
指针
值来释放
分配
的
内存。这意味着C知道
分配
的
内存块有多大。那么,
为什么
没有内置
函数
来查找
指针
数组
的
大小呢?我知道惯例是跟踪
数组
大小,但是考虑到已经
存在
一些本地内存管理,我们
为什么
不利用它来为
数组
提供一个方便
的
size()
函数
呢?
浏览 7
提问于2016-07-21
得票数 0
回答已采纳
3
回答
为什么
realloc不能工作,
而
malloc可以呢?
、
、
、
、
唯一
的
问题是我真的需要内存
存在
,或者应用程序不能像预期
的
那样运行,所以我决定尝试malloc,因为realloc不会工作,所以我认为它不会工作,但它确实工作了。
为什么
?然后我将
指针
数组
复制到新
分配
的
数组
中,但发现它破坏了它,像0x10和0x2b这样
的
指针
被放入了
数组
中。有真正
的
指针
,但如果我用for循环替换memcpy,就可以修复它。
为什
浏览 0
提问于2011-05-10
得票数 1
回答已采纳
5
回答
为什么
动态内
存在
超出作用域时不被清除?
、
、
当创建一个动态大小
的
数组
(例如,使用new )时,
为什么
当它超出作用域时不被移除,
而
一个大小固定
的
数组
却会被删除?removed out of scope} 由于baz和bar都是指向
数组
开头
的
指针
,所以“运行时环境”不能将相同
的
技术(检测某物超出作用域,并在超出
浏览 10
提问于2014-01-28
得票数 0
回答已采纳
4
回答
即使超出范围,我也能保持矢量数据吗?
、
、
我是C背景
的
。例如,我过去常常
分配
内存/
数组
,将其发送到其他地方,
指针
仍然
停留在那里,即使在它被
分配
的
范围被破坏
之后
。现在,如果我对向量做同样
的
操作:初始化,通过引用传递它,然后将该引用保
存在
某个地方。在最初
的
方法
之后
,它实际上创造了向量,超出了范围,它会被销毁吗?或者,当指向它
的
指针
仍然
保存时,它将被保存。
浏览 5
提问于2019-11-27
得票数 3
回答已采纳
2
回答
C++作用域和
分配
如果我理解正确的话,
不是
动态
分配
的
变量应该在它们
的
作用域结束时被删除。然而,我想用这段代码来尝试一下(我认为这是不正确
的
,因为我应该使用动态
分配
):{ return &a; int* a(function()); std::cout << *a << std::endl; /
浏览 0
提问于2016-07-17
得票数 0
3
回答
对作用域和堆内存生存期感到困惑
好
的
,我正在尝试理解堆
的
概念及其作用域int main(){ int* x = new int(10);} 但是既然我把它
分配
给了堆,
为什么
它不再
存在
于块
的
作用域
之后
?
浏览 1
提问于2019-01-05
得票数 0
回答已采纳
1
回答
从
函数
中
的
局部变量返回
指针
、
我正在读一本叫做Go编程语言
的
书,在第二章中,我写了以下关于
指针
的
书 func f() *int { return&v我完全不明白,一个局部变量应该在
函数</e
浏览 0
提问于2018-10-25
得票数 6
回答已采纳
3
回答
为什么
我们不能动态地
分配
指向
函数
的
指针
?
、
、
、
、
我试图动态地
分配
一个
指针
给这样
的
函数
。f = (*f)malloc(sizeof(f) * 2); 我看到了另一个错误,我不能声明一个
浏览 3
提问于2017-08-14
得票数 1
回答已采纳
1
回答
指向仅
存在
于
函数
C中
的
变量
、
、
我正在试图弄清楚诸如
指针
之类
的
东西,但我遇到了一个我无法思考
的
例子。
指针
数组
作为参数传递给给定
的
函数
,并指向
函数
中创建
的
变量,据我所知。lineptr[nlines++] = p; 这仅仅是因为以前使用
的
alloc
函数
才可行吗?这是如何工作
的
,这是一种安全
的
编码方式,还是应该避免呢?
浏览 1
提问于2019-03-15
得票数 1
回答已采纳
2
回答
如何在堆上创建一个自动array[N],并使用
、
、
、
我有一个关于
指针
和
数组
的
角落案例。}
为什么
分配
p
的
表达式不能工作?
为什么
rvalue是int*
而
不是
ArrayOf10Ints*
浏览 4
提问于2016-07-26
得票数 3
回答已采纳
2
回答
垃圾收集器能到达用另一种语言编写
的
函数
所留下
的
“垃圾”吗?
假设您从带有GC
的
语言中重复调用另一种语言
的
函数
(例如,Fortran 95)。Fortran
函数
在调用之间
的
内存中
分配
了一些东西,从调用者语言中可以看到这些调用是不可引用
的
垃圾。由Fortran
函数
分配
的
内存应该有自己
的
内存管理,
而
不是
GC管理
的
内存,不过,如果有人能确认这一点,我会很高兴
的
。
为什么
我需要它
浏览 2
提问于2010-03-08
得票数 3
5
回答
C:确定
数组
中是否
存在
指针
,并打印以下项
、
、
、
我需要编写一个得到
数组
的
函数
,它
的
大小和
指针
,我需要检查
指针
是否
存在
于
数组
中,如果是的话,在
数组
之后
打印所有元素,我不允许创建局部变量或使用[]。这就是我为找到
指针
是否
存在
而
做
的
事情。
浏览 1
提问于2018-03-24
得票数 0
回答已采纳
1
回答
为什么
函数
的
变量在外部通过“。只能通过“”访问。在这个功能里面?
我通过“”初始化了一个
函数
变量。在功能之外。关于闭包规则,它应该设置在
函数
范围
内
,并且在执行后应该消失。但 我检查了在外部初始化
的
函数
的
变量是否可以在没有“”
的</
浏览 1
提问于2019-08-25
得票数 1
5
回答
堆栈上存储为
指针
的
C++实例变量
、
、
、
构造
函数
将该
数组
存储到一个实例变量中。我知道堆栈上
的
实例变量是自动释放
的
,但是MyObject怎么知道这个
指针
指向堆栈上
的
数组
,
而
不是
堆上创建
的
伪对象?我理解堆栈,堆,通过值和引用传递,但是堆栈上用
指针
处理
浏览 1
提问于2015-06-05
得票数 2
1
回答
CUDA,使用2D和3D
数组
、
、
第一个链接:用户解决方案:使用mallocPitch“更正确
的
”解决方案第二个链接:子链接: 子链接解决方案:在GPU上编写基于
指针
的
结构是一种糟糕
的
体验,而且效率很低,将其压缩成一维
数组
。许多人声称
分配
浏览 4
提问于2017-08-11
得票数 3
回答已采纳
1
回答
打印在
函数
中作为参数传递
的
结构
、
我有一个C程序,它接受一个
数组
作为输入,它将保存为3个不同
的
数组
。输入是这样
的
: 首先我给出
数组
的
维数,然后是
数组
的
非零值
的
数量,然后是值和它们
的
坐标。在给出输入
之后
,我尝试打印带有function print2d(struct arrayCollection the array)
的
数组
,但是结构
的
数组
内部似乎有错误
的<
浏览 2
提问于2013-05-13
得票数 0
回答已采纳
2
回答
C中
的
动态和静态/自动内存
分配
、
、
有一堆关于这方面的文章已经准备好了,所以我理解,在使用动态内存
分配
指针
时,
指针
存在
于创建它们
的
函数
之外。但是,在编译和运行时部分,我似乎
仍然
有点困惑。例如,当在运行时首先知道
数组
的
大小时,规则似乎是需要使用动态内存
分配
。} printf("%d\n", array[i]);
浏览 8
提问于2016-12-25
得票数 0
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
C加加开发易踩雷区
最适合小白的C语言整体学习计划,入门到精通比不可少
C语言函数返回值解析
第33讲-动态内存管理
切片上的健壮范型函数
热门
标签
更多标签
云服务器
ICP备案
云直播
对象存储
腾讯会议
活动推荐
运营活动
广告
关闭
领券