c/c++ 动态申请数组(转载)
转载:http://blog.csdn.net/hondely/article/details/6779887
转载:http://bbs.csdn.net/topics/390721031
转载:http://wenda.tianya.cn/question/05cf48b56c85c114
转载:http://www.cnblogs.com/wft1990/p/5962898.html
C语言内存分配
1.函数malloc:
调用形式:
(类型说明符*) malloc (size) 功能:在内存的动态存储区中分配一块长度为"size" 字节的连续区域。函数的返回值为该区域的首地址。
“类型说明符”表示把该区域用于何种数据类型。(类型说明符*)表示把返回值强制转换为该类型指针。“size”是一个无符号数。
例如:char* p=(char *) malloc (100); 表示分配100个字节的内存空间,并强制转换为字符数组类型, 函数的返回值为指向该字符数组的指针, 把该指针赋予指针变量p。
2.函数 calloc:
调用形式:
(类型说明符*)calloc(n,size) 功能:在内存动态存储区中分配n块长度为“size”字节的连续区域。函数的返回值为该区域的首地址。
(类型说明符*)用于强制类型转换。calloc函数与malloc 函数的区别仅在于一次可以分配n块区域。
例如:struct* p=(struct stu*) calloc(2,sizeof (struct stu)); 其中的sizeof(struct stu)是求stu的结构长度。因此该语句的意思是:按stu的长度分配2块连续区域,强制转换为stu类型,同时把分配的内存全都初始化为零值,并把其首地址赋予指针变量p。
释放内存空间函数free
调用形式: free(void*ptr); 功能:释放ptr所指向的一块内存空间,ptr
是一个任意类型的指针变量,它指向被释放区域的首地址。被释放区应是由malloc或calloc函数所分配的区域。
C++分配内存:
1.new
1)int *a = new int; //即为将一个int类型的地址赋值给整型指针a.
2)int *a = new int(5) 作用同上,但是同时将整数赋值为5
3)一维: int *a = new int[100];开辟一个大小为100的整型数组空间
二维: int **a = new int[5][6];
delete用法:
1. int *a = new int;
delete a; //释放单个int的空间
2.int *a = new int[5];
delete [] a; //释放int数组空间
要访问new所开辟的结构体空间,无法直接通过变量名进行,只能通过赋值的指针进行访问.
例子:分配动态数组
struct Student{
string name;
double weight;
int gender;
}; struct Student* pStudent = new struct Student[];
初始化 memset(pStudent,0,sizeof(Student) * 3);
给动态数组元素赋值
pStudentr[]="Lucy";
pStudentr[]=48.5;
pStudentr[]=; .... pStudentr[]="Tom";
pStudentr[]=68.5;
pStudentr[]=;
c/c++ 动态申请数组(转载)的更多相关文章
- c/c++ 动态申请数组
new和delete运算符用于动态分配和撤销内存的运算符 new使用方法: 1. 开辟单变量地址空间 1)new int; //开辟一个存放数组的存储空间,返回一个指向该存储空间的地址.in ...
- Delphi动态申请数组内存的方法(不使用SetLength,采用和C相似的方式)
procedure TForm1.Button1Click(Sender: TObject);type TArr = array [0..0] of Integer; PArr = ^TArr;v ...
- C++ - 动态申请数组空间
// 用指针p指向由new动态分配的长度为length*sizeof(int)的内存空间. int * p = new int[length];
- C++二维数组动态申请内存
好久没用C++刷题了,今天早上刷了几条题,感觉很陌生了.怪我,大二下实在太颓废了,没啥作为. 今天更新个关于c++二维数组内存申请的问题,当初作为菜鸟初学指针的时候,还是在这方面有点搞不通的.今天用到 ...
- C++动态申请一维数组和二维数组
在平时的编程过程中,我们经常会用到数组来存放数据,我们可以直接申请足够大空间的数组来保证数组访问不会越界,但是即便这样,我们依然不能保证空间分配的足够,而且非常的浪费空间.有时候我们需要根据上面得到的 ...
- C++中动态申请二维数组并释放方法
C/C++中动态开辟一维.二维数组是非常常用的,以前没记住,做题时怎么也想不起来,现在好好整理一下. C++中有三种方法来动态申请多维数组 (1)C中的malloc/free (2)C++中的new/ ...
- 消除VS中动态申请二维数组C6011,C6385,C6386的警告
动态申请二维数组,无非就是通过指针来实现.@wowpH 过程分三步:1.申请内存,2.使用数组,3.释放内存. 代码如下: /************************************* ...
- Android JNI编程(五)——C语言的静态内存分配、动态内存分配、动态创建数组
版权声明:本文出自阿钟的博客,转载请注明出处:http://blog.csdn.net/a_zhon/. 目录(?)[+] 一:什么是静态内存什么又是动态内存呢? 静态内存:是指在程序开始运行时由编译 ...
- c++ 依据输入动态声明数组(一维,二维)
较早的编译器是不同意这样做的,所以一些书籍比方以Tc解说的书本都说数组的下标不能是变量.在vc6.0下亦是如此. 只是在一些较新的编译器如dev c++已经支持了,例如以下代码不会报错 #includ ...
随机推荐
- Oracle HA 之 Server Pool 实战
--创建server pool的两种方式: 图形界面:console和dbca 演示-略 命令行工具:srvctl和crsctl --srvctl和crsctl创建server ...
- Git:上传GitHub项目操作步骤
git教程:git详解.gitbook #首次上传步骤 首先在工程文件位置处右键git bash here 本地创建ssh key $ ssh-keygen -t rsa -C "your_ ...
- Linux上Oracle 11g安装步骤图解
Oracle 11g下载地址: http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html 选 ...
- 大数据智能SOC解决方案
- 一次性从git远程仓库中克隆到本地。
自动化工具 一次性从git远程仓库中克隆到本地. import os # git操作 将远程repo克隆到本地 def git_clone_cd_pull(url): # 获取仓库名称 如fullsp ...
- 最简单的css实现页面宽度自适应
<div class="rxs"> <div class="rxleft"> 第一段内容,可以是任何html标签 </div> ...
- inline详解
1. 引入inline关键字的原因 在c/c++中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了inline修饰符,表示为内联函数. 栈空间就是指放置程序的局部数据(也就是 ...
- JS参差不齐的数组
<html><head> <title>参差不齐的数组</title> <meta charset="utf-8"> & ...
- swoole udp
server.php <?php $server = new swoole_server('127.0.0.1', 9502, SWOOLE_PROCESS, SWOOLE_SOCK_UDP); ...
- 人生苦短之我用Python篇(socket编程)
socket模块 实现简单的远程连接: 客户端: import socket client = socket.socket()#声明socket类型,同时生成socke连接t对象 client.con ...