重载下标操作符,检查内存越界

简介: 重载下标操作符,检查内存越界

前一篇文章,吾提出重载下标操作符[],实现内存越界检查.于是网上搜索了一下,找到一个范例,测试通过:

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
class SafeArray
{
public:
    SafeArray(const int size) 
    {
       nSize = size;
       pData = (int*)malloc(sizeof(int)*nSize);
       //memset(pData, 0, sizeof(int)*nSize);
       for (int i=0; i<nSize; i++)
       {
            pData[i] = i;
       }
    }
    ~SafeArray()
    {
        if (pData != NULL)
        {
            free(pData);
            pData = NULL;
        }
    }
    int& operator[](int i)
    {
        if( i > nSize )
        {
            cout << "索引超过最大值" <<endl; 
            // 返回第一个元素
            return pData[0];
        }
        return pData[i];
    }
private:
    int* pData;
    int  nSize;
};
int main()
{
   SafeArray test(8);
   cout << "test[2] 的值为 : " << test[2] <<endl;
   cout << "test[5] 的值为 : " << test[5] <<endl;
   cout << "test[p] 的值为 : " << test[9] <<endl;
   return 0;
}
目录
相关文章
|
7月前
|
Rust 安全 编译器
Rust中的生命周期与借用检查器:内存安全的守护神
本文深入探讨了Rust编程语言中生命周期与借用检查器的概念及其工作原理。Rust通过这些机制,在编译时确保了内存安全,避免了数据竞争和悬挂指针等常见问题。我们将详细解释生命周期如何管理数据的存活期,以及借用检查器如何确保数据的独占或共享访问,从而在不牺牲性能的前提下,为开发者提供了强大的内存安全保障。
|
7月前
|
Linux
linux 常用内存检查命令
linux 常用内存检查命令
79 0
|
1月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
217 6
|
28天前
|
缓存 Linux
如何检查 Linux 内存使用量是否耗尽?
何检查 Linux 内存使用量是否耗尽?
|
2月前
|
存储 安全 程序员
内存越界写入
【10月更文挑战第13天】
52 4
|
2月前
|
Rust 安全 Java
内存数组越界
【10月更文挑战第14天】
33 1
|
2月前
|
Java 编译器 C++
内存越界读取
【10月更文挑战第13天】
51 2
|
2月前
|
存储 容器
内存越界访问(Out-of-Bounds Access)
【10月更文挑战第12天】
239 2
|
4月前
|
缓存 Ubuntu Linux
在Linux中,如何检查系统的CPU和内存使用情况?
在Linux中,如何检查系统的CPU和内存使用情况?
|
5月前
|
存储 监控 安全
JVM内存问题之如何比较不同时间点的pmap输出以检查新增或变大的内存段
JVM内存问题之如何比较不同时间点的pmap输出以检查新增或变大的内存段