如何使用 vc++ 找出当前线程的堆栈上剩余多少空间?

2024-02-13

我使用的是VC++ 2012。 我希望能够知道当前线程中有多少堆栈内存可用。

快速搜索指向使用 malloc.h 和 stackavail() 函数,但它在 Visual C++ 2012 中不存在。我如何以另一种方式实现这一点?

有问题的例子是这样的:

#include "stdafx.h"
#include <iostream>
#include <malloc.h>

using namespace std;

int _tmain()
{
    cout << "Available stack: " << stackavail() << std::endl;
}

这使用了一些堆栈,但是线程安全的,并且不需要 asm 内联。我认为我们这些需要跟踪堆栈的人不需要精度。只是对可用于防止发生溢出的方法的良好估计。我们需要跟踪它,因为我们为用户提供了创建可能使用递归或其他服务或需求的宏、脚本、表达式等的能力。每个环境都应该能够报告堆栈可用性,即使它只使用所有可用内存,以便可以控制任何递归。

size_t stackavail()
{
  // page range
  MEMORY_BASIC_INFORMATION mbi;                           
  // get range
  VirtualQuery((PVOID)&mbi, &mbi, sizeof(mbi));           
  // subtract from top (stack grows downward on win)
  return (UINT_PTR) &mbi-(UINT_PTR)mbi.AllocationBase;    
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 vc++ 找出当前线程的堆栈上剩余多少空间? 的相关文章

  • 金特 + XNA (C#)

    是否可以使用jint http jint codeplex com操作使用 XNA C 创建的 3D 环境 并向该环境添加功能 再次使用 jint 作为 Jint 的贡献者 我会推荐你Jint http jint codeplex com
  • 我应该把 try/catch 和“using”语句放在哪里? [复制]

    这个问题在这里已经有答案了 可能的重复 try catch using 正确的语法 https stackoverflow com questions 4590490 try catch using right syntax 我想try c
  • 编写此代码片段的有效方法是什么? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 更有效和 或更短地重写此代码以节省字节并显得不那么冗长的方法 if N 2 0 N 6 N 8 N 10 N 12 N 14 N 16 N
  • JSON.Net 反序列化返回“null”

    我正在使用 JSON Net 反序列化 JSON 字符串 JSON 字符串是 string testJson Fruits Apple color red size round Orange Pro
  • 是否可以从 C++ 应用程序调用 C# 应用程序?

    我是一名编程学生 现在我已经上了两门 C 课程 这个学期我将参加我的第一门 C 课程 出于好奇 是否可以从 C 应用程序调用 C 应用程序 如果是的话 是否还可以检查运行该程序的计算机是否具有 NET框架 我只是很好奇 我想如果可能的话 这
  • 我如何知道 C 程序的可执行文件是在前台还是后台运行?

    在我的 C 程序中 我想知道我的可执行文件是否像这样在前台运行 a out 或者像这样 a out 如果你是前台工作 getpgrp tcgetpgrp STDOUT FILENO or STDIN FILENO or STDERR FIL
  • 进程退出后 POSIX 名称信号量不会释放

    我正在尝试使用 POSIX 命名信号量进行跨进程同步 我注意到进程死亡或退出后 信号量仍然被系统打开 在进程 打开它 死亡或退出后是否有办法使其关闭 释放 早期的讨论在这里 当将信号量递减至零的进程崩溃时 如何恢复信号量 https sta
  • 异常堆栈跟踪不显示抛出异常的位置

    通常 当我抛出异常 捕获它并打印出堆栈跟踪时 我会看到抛出异常的调用 导致该异常的调用 导致该异常的调用that 依此类推回到整个程序的根 现在它只向我显示异常所在的调用caught 而不是它所在的地方thrown 我不明白是什么改变导致了
  • 将 OpenCV Mat 转换为数组(可能是 NSArray)

    我的 C C 技能很生疏 OpenCV 的文档也相当晦涩难懂 有没有办法获得cv Mat data属性转换为数组 NSArray 我想将其序列化为 JSON 我知道我可以使用 FileStorage 实用程序转换为 YAML XML 但这不
  • 将设置函数(setter)标记为 constexpr 的目的是什么? [复制]

    这个问题在这里已经有答案了 我无法理解将 setter 函数标记为的目的constexpr 自 C 14 起这是允许的 我的误解来自以下情况 我使用 constexpr c tor 声明一个类 并且我将通过创建该类的 constexpr 实
  • 在 ASP.NET MVC 中将模型从视图传递到控制器

    我正在 ASP NET MVC 中开发我的第一个应用程序 但遇到了一个我无法解决的问题 即使在阅读了整个互联网之后也是如此 因此 我有几个使用视图模型创建的视图 它们是报告 这些视图模型是根据用户选择标准填充的 我正在尝试构建一种接受模型并
  • C++ 将联合强制转换为其成员类型之一

    以下对我来说似乎完全符合逻辑 但不是有效的 C 联合不能隐式转换为其成员类型之一 有人知道为什么不这样做的充分理由吗 union u int i char c function f int i int main u v v i 6 f v
  • 有什么方法可以重载 C# 中的扩展方法吗?

    我有以下模型模式 public abstract class PARENTCLASS public class CHILD A CLASS PARENTCLASS public static class EXTENSION public s
  • 在 C++11 中移出 stdpriority_queue 的元素

    最小的工作示例 include
  • 子目录中的头文件(例如 gtk/gtk.h 与 gtk-2.0/gtk/gtk.h)

    我正在尝试使用 GTK 构建一个 hello world 其中包括以下行 include
  • C++ 到 C# 事件处理

    所以我有我的C WinForm 应用程序 我从中调用我的C CLI MFC dll图书馆 但也有一些events在我的 C 库上 甚至此事件也发生在该库的本机 非 CLI 部分 我需要从我的 C 应用程序调用一些代码 并获取一些有关此事件的
  • C# 中的 C/C++ 代码编译器

    在 C 中 我可以使用下面的代码编译 VB 和 C 代码 但无法编译 C C 代码 有什么办法可以做到这一点吗 C 编译器 public void Compile string ToCompile string Result null st
  • C 中使用 getrandom 实现随机浮点数

    我试图生成一个介于 0 和 1 之间的随机浮点数 无论是在 0 1 还是 0 1 对我来说都不重要 网上关于此的每个问题似乎都涉及rand 呼叫 播种time NULL 但我希望能够每秒多次调用我的程序 并每次都获得不同的随机数 这引导我找
  • 如何在dll级别读取app.config? [复制]

    这个问题在这里已经有答案了 我在一个解决方案中有一个控制台应用程序项目和库项目 dll The 图书馆项目有 app config 文件 我在其中存储我在库中使用的一些键值对 控制台应用程序引用此 dll 我有另一个 app config
  • “必须声明标量变量”错误[重复]

    这个问题在这里已经有答案了 必须声明标量变量 Id SqlConnection con new SqlConnection connectionstring con Open SqlCommand cmd new SqlCommand cm

随机推荐

  • 当移动的 div 到达特定区域时将 CSS 应用到它。用于移动元件的静态放大镜

    我偶然发现了创建一个非常具体的元素的问题 我有一个显示不同内容的股票代码 文本 图像和其他类型的内容 我想要做的是添加一个静态 放大镜 以便所有移动内容在放大镜区域时都会缩放 我看到的大多数 jquery 缩放或放大插件从未使用固定位置 而
  • 通过 BLE 上的 ANT+FEC 将用户体重发送到智能训练器

    有谁知道如何将室内智能训练器的用户体重设置发送到 DataPage 55 我想更新用户体重 以使成绩模拟更加真实 我已成功发送成绩 数据页 51 并且对用户体重实施相同的格式似乎没有任何作用 func sendUserConfig peri
  • 带有弧形尖底的头部

    我需要创建下图所示的蓝 绿色区域 它有倾斜的侧面 向下延伸至有轻微弯曲的点 使用什么是实现此目的的最佳方法CSS 如果无法支持 IE9 我需要支持 IE9 或 IE10 我已经开始了基础的演示在这里 http jsbin com quxoh
  • 新的关键字和方法隐藏

    new 关键字用于隐藏相同的基类实现 但我不确定为什么以下代码会生成 Baseclass 输出 class Baseclass public void fun Console Write Base class class Derived1
  • 在 Go 中解析 XML 时处理命名空间

    我正在尝试在 Go 中解析 XML 片段 package main import encoding xml fmt type XML struct Foo string xml foo func main rawXML byte
  • 如何给出 DateTime.Date 格式?

    日期时间 dt 日期时间 Now dt Date 创建为 31 10 2012 00 00 00 它创建为 dd mm yyyy 格式 但我需要 dd mm yyyy 我可以使用 return new DateTime d Year d M
  • 如何在两个 nib 文件之间共享 NSArrayController?

    我有一组图像和两个 nib 文件 一个 nib 文件有一个窗口 在 NSTableView 中显示图像 另一个笔尖有一个窗口 可将图像数组绘制到 NSView 中 并在选定的图像上绘制突出显示 图像数组由 NSArrayController
  • 如何将 ascii 值字符串转换为 python 中的原始字符/数字

    我有一个带有数字的字符串 我之前用编码器转换了它 但现在我正在尝试解码它 我四处搜索 似乎没有答案 如果你有任何办法 亲爱的 请告诉我 字符串 91 39 65 97 66 98 67 99 32 49 50 51 39 93 结果 ABC
  • 如何在编译时指定资源注释的名称?

    我们的代码是这样的 Resource name java comp resource foo bar ONE QUEUE private Queue queue 但是 在一种部署场景中 队列注释应如下所示 Resource name jav
  • Composer 自动加载完整示例?

    我想把all https getcomposer org doc 04 schema md psr 0 the https stackoverflow com questions 15179025 unable to autoload cl
  • 暂停和恢复 AnimateWithDuration 动画 ios

    因此 我在 animateWithDuration 方法的帮助下完成了动画 但我需要在应用程序进入后台时停止动画 并在应用程序返回前台时恢复动画 有什么方法可以实现这一点 我的动画 标签在一定时间间隔后淡入淡出 void viewDidLo
  • Twitter API:如何仅搜索带有地理标记的推文

    我该如何使用Twitter Search API 或其他 获取具有以下内容的推文列表 geo param EDIT 举例来说 我不会通过 apple 标签获取地理标记推文列表 没有位置过滤器 全球范围内 看起来最新的 API 支持这一点 只
  • 如何强制输入只允许字母?

    此处使用 jQuery 但无法阻止在输入字段中输入数字 http codepen io leongaban pen owbjg http codepen io leongaban pen owbjg Input
  • Javascript 的正则表达式lookbehind 解决方法?

    我在正则表达式方面很糟糕 所以我会以尝试更好地描述我的问题的名义 以一种非常规的方式传达我的问题 var TheBadPattern d 2 d 2 d 2 d 3 var TheGoodPattern a zA Z0 9 r n n a
  • raise ValueError('Fileobj 必须实现 read')

    我正在获取文件大小并将其上传到 S3 def transfer file from ftp to s3 bucket name ftp file path s3 file path ftp username ftp password chu
  • AVAssetWriter 仅在 iOS 13 设备上有音频“爆裂声”

    我使用 AVCaptureSession 使用 AVAssetWriter 写入 mov 文件 同样的代码在 iOS 13 之前的设备上不会出现裂纹 在所有 iOS 13 设备上 无论 iPhone iPad 型号如何 都会出现爆裂声 我已
  • Eigen SparseMatrix 的零拷贝构造

    我有以下问题 我有一个Eigen SparseMatrix我需要通过网络发送 而我的网络库仅支持发送原始类型的数组 我可以通过执行类似的操作来检索指向 SparseMatrix 的支持数组的指针 这是支持对象的代码 https eigen
  • extjs 5:为组件的自定义属性进行数据绑定

    我有一个从文件字段扩展的组件 我向其中添加了一个自定义属性 serverPath 并且我还定义了 getter 和 setter 代码 Ext define MyApp ux Field File extend Ext form field
  • 是否可以使用 Node.js 创建桌面应用程序? [复制]

    这个问题在这里已经有答案了 我已经使用node js 创建了一个应用程序 我很想知道是否可以将客户端 js html css 和服务器端打包到一个独立的应用程序 不需要浏览器 中 https github com rogerwang nod
  • 如何使用 vc++ 找出当前线程的堆栈上剩余多少空间?

    我使用的是VC 2012 我希望能够知道当前线程中有多少堆栈内存可用 快速搜索指向使用 malloc h 和 stackavail 函数 但它在 Visual C 2012 中不存在 我如何以另一种方式实现这一点 有问题的例子是这样的 in