首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >_PROCESS_MEMORY_COUNTERS给出了内存使用的负值。

_PROCESS_MEMORY_COUNTERS给出了内存使用的负值。
EN

Stack Overflow用户
提问于 2013-09-30 12:44:18
回答 2查看 256关注 0票数 0

我正试图通过我的应用程序来获得内存使用量。我跟着this

这是我编写的代码,但是在1GB之后,它会给出负值。

代码语言:javascript
复制
    _PROCESS_MEMORY_COUNTERS info;
    GetProcessMemoryInfo( GetCurrentProcess( ), &info, sizeof(info) );
    int membyte = ((size_t)info.WorkingSetSize);
    QString s1 = "MB";

    double mem = membyte/1048576.0;
    if(mem>900.0)
    {
        mem = mem/1024.0;
        s1 = "GB";
    }

    double f,i,t1,t2;
    f = modf (mem , &i);
    f = f*100;
    t1 = modf(f,&t2);
    mem = i + (t2/100.0);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-30 12:47:37

代码语言:javascript
复制
int membyte = ((size_t)info.WorkingSetSize);

别干那事。不能保证工作集大小将在int可以表示的范围内。也许您想要使用unsigned long,或者更好的是使用SIZE_T

票数 3
EN

Stack Overflow用户

发布于 2013-09-30 13:04:54

变化

代码语言:javascript
复制
int membyte = ((size_t)info.WorkingSetSize);

代码语言:javascript
复制
SIZE_T membyte = info.WorkingSetSize;

文档中说WorkingSetSize成员的类型(如果是SIZE_T )。您将其转换为已签名的int类型,而SIZE_T则是无符号的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19094626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档