C语言系列之指针类型内存分配模板
来源:互联网 发布:多个表格数据求和 编辑:程序博客网 时间:2024/05/18 02:22
该样例实现了各种类型的指针的内存分配以及 各种类型的指针释放
值得一提的是free操作之后就释放了指针指向的那块内存,则那块内存很可能就被人修改了,所以释放的时机一定要把握准。
代码如下:
/***author:seentime:2017-10-12***/#include <stdlib.h>#include <stdio.h>#include <string.h>#include <time.h>using namespace std;char **getData(int sz,char **res){ char **p = (char **) malloc((sz)*sizeof(char *)); //存指针变量的内存 // char **p; for(int i=0;i<sz;i++){ p[i] = (char *) malloc(sizeof(char)*20); //存指针变量指向的内容的内存 int temp = rand()%8; //生成8个随机数 p[i] = res[temp]; } // free(p); return p; //p是指向指针数组的指针}int *getIntData(int sz){ int *p = (int *)malloc(sz*sizeof(int)); for(int i=0;i<sz;i++){ // p[i] = (int)malloc(sizeof(int)); p[i] = rand()%8000; //cout<<i<<" data is " <<p[i]<<endl; } return p;}int **getIntMetrixData(int length,int width){ // int **p = (int **)malloc(length*sizeof(int)*width); int **p = (int **)malloc(length*sizeof(int *)); //内存里面存指针变量,length表示指针个数 sizeof(int *)表示int *型变量的内存长度 for(int i=0;i<length;i++){ p[i] = (int *)malloc(sizeof(int)*width); //内存里面存指针变量指向的变量 for(int j=0;j<width;j++){ // p[i][j] = (int)malloc(sizeof(int) p[i][j] = rand()%8000; // cout<<i<<" data is " <<p[i][j]<<endl; // free(p[i][j]); } //cout<<i<<" data is " <<p[i]<<endl; } return p;}char **test(){ char **p = (char **)malloc(1*sizeof(char *)); //为指向指针的指针分配内存 char A = '3'; char *add = &A; //p[0] = (char *)malloc(sizeof(char)); // p[1] = (char *)malloc(sizeof(char)); //为指针分配内存 *p = (char *)malloc(sizeof(char)); p = &add; cout<<"A的地址为:"<<&A<<endl; cout<<"add的地址为"<<&add<<endl; cout<<"p的地址为:"<<&p<<endl; return p;}int main(){ srand(time(NULL)); char **data = test(); cout<<data<<endl; #if 0 int *data= getIntData(1000); for(int i=0;i<1000;i++){ cout<<i<<" "<<data[i]<<endl; } #endif return 0;}
阅读全文
0 0
- C语言系列之指针类型内存分配模板
- c语言动态内存分配之正确使用指针
- C语言给指针分配内存
- 转]C语言,指针与内存分配
- C语言指针传递和内存分配
- [转]C语言,指针与内存分配
- [转]C语言,指针与内存分配
- C语言指针传递和内存分配
- C语言指针及内存分配
- C语言 指针及动态内存分配
- C语言指针传递和内存分配
- c语言指针与动态内存分配
- C语言,指针与内存分配
- c语言指针--动态内存分配
- C语言-函数指针+动态内存分配
- C语言 free 指针 变量内存分配
- C语言,指针与内存分配
- C语言指针传递和内存分配
- JAVASE入门---我对强转与多态的理解
- [C# 网络编程系列]专题五:TCP编程
- [Lintcode] #70 二叉树的层次遍历 II
- 嵌入式 uboot命令及内核启动参数
- postgres数据库查看用户权限
- C语言系列之指针类型内存分配模板
- Tomcat高性能调优方案详解
- java提高篇---LinkedList
- 简单算法——使用栈实现括号匹配检验
- 刘强东:死掉的创业公司,几乎都违背这 4 点最基本的经济常识
- H5是轻应用,也是一个流量中枢
- java提高篇-----HashMap
- initializer element is not a comply-time constant
- cdma拨号的细节记录