• c指针之内存释放


    // 1.正常使用包含指针的结构体
    // 2.正常使用元素类型为指针的vector
    #include<string.h>     
    #include<stdio.h>    
    #include<memory.h>
    #include <malloc.h>
    #include <vld.h>
    #include <vector>
    
    using std::vector;
    
    struct student
    {
    	int name;
    	char *data;
    };
    
    template <typename T>
    void ClearVector(vector<T>& v)
    {
    	vector<T>::iterator it, itEnd = v.end();
    	for (it=v.begin();it!=itEnd;it++)
    	{
    		if (*it != NULL)
    		{
    			delete *it;
    			*it = NULL;
    		}
    	}
    	vector<T> vtTemp; 
    	vtTemp.swap(v);
    }
    
    void AddStudent(vector<student*>& strVec, int name, char* data)
    {
    	char szData[100];// 这里使用一个字符数组,防止data被外部释放。
    	strcpy_s(szData, strlen(data) + 1, data);
    	struct student *ptsdu=(student*)malloc(sizeof(student));
    	memset(ptsdu,0,sizeof(student));
    	ptsdu->name = name;
    	ptsdu->data = szData;
    	strVec.push_back(ptsdu);
    }
    
    vector<student*> g_stuVec;
    
    void main(void)     
    {    
    	char data1[] = "ddbb";
    	char data2[10];
    	strcpy_s(data2, 10, "bb");
    	AddStudent(g_stuVec, 1, data1);
    	AddStudent(g_stuVec, 2, data2);
    
    	ClearVector(g_stuVec);
    	system("pause");
    } 
    
  • 相关阅读:
    字符串删减
    iOS-AFNetworking与ASIHTTPRequest的区别
    iOS-清理缓存
    iOS-addSubView时给UIView添加效果
    iOS-明杰解决字段冲突,及数组映射
    iOS-开发将文本复制到剪切板
    iOS-加载html字符串
    iOS-UILabel加线
    iOS-获取webView的高度
    iOS-plist文件的写读
  • 原文地址:https://www.cnblogs.com/mumuli/p/4541411.html
Copyright © 2020-2023  润新知