动态内存分配 传统数组的缺点(静态内存分配): 1.数组长度必须事先指定,且只能是常整数,不能是变量 例子: int a[5]; //OK int len = 5; int a[len]; //error 2.传统形...
分类:
其他好文 时间:
2015-04-27 00:07:50
阅读次数:
110
对一个程序,通常的理解就是,源码编译成机器代码,然后通过机器解释运行。不过是怎样编译成机器代码,和怎样运行的,无疑是个值得探讨的问题。怎样编译成机器代码,过程就是源码的编译、链接,编译器做了这些事。而怎样运行,却不是哪个器件自己一己之力就可以做到的。机器代码要在机器上运行,就得要请求硬件资源。涉及最...
分类:
其他好文 时间:
2015-04-26 06:56:25
阅读次数:
156
#include<stdio.h>
#include<stdlib.h>
voidmain()
{
structstu_type{
charnum[15];
charname[10];
intage;
intc;
intmath;
inten;
intsum;
floatave;
}*p,*p1;
intn,i;
printf("请输入学生人数:");
scanf("%d",&n);
p=(structstu_type*..
分类:
其他好文 时间:
2015-04-26 01:47:39
阅读次数:
143
#include<stdio.h>
#include<stdlib.h>
char*substr(constchar*s,intn1,intn2)
{
char*p=(char*)malloc(n2-n1+2);
inti,j=0;
for(i=n1;i<=n2;i++,j++)
p[j]=s[i];
p[j]=‘\0‘;
returnp;
}
voidmain(void)
{
chars[80],*sub;
intn1,n2;
printf("请输入..
分类:
其他好文 时间:
2015-04-26 01:47:06
阅读次数:
146
new运算符的作用是完成动态内存分配和初始化工作。
对应的,delete运算符的作用就是完成清理与释放内存工作。
在类构造函数中,可以使用new为数据分配内存,并将内存地址赋予类成员。这样一来,类就可以处理长度不同的字符串,而不用在类设计时就提前固定数组的长度。
但是,如果对象包含成员指针,同时它指向的内存是由new分配的,则当释放用于保存...
分类:
其他好文 时间:
2015-04-22 22:23:30
阅读次数:
134
在不知道需要占用内存空间大小时,需要在堆栈上动态开辟内存空间,空间使用结束后需要程序员自己释放。#include
#include
void main()
{
int n,*p,i,j,m,temp;
printf("本程序可对任意个整数排序;\n");
printf("请输入整数的总个数: ");
scanf("%d",&n);
p=(int *)calloc(n,sizeof...
分类:
其他好文 时间:
2015-04-22 18:18:17
阅读次数:
158
一维数组的动态内存分配 #include "stdafx.h"
#include using namespace std; int main() { int length,i; int *p; cin>>length; p=new int[length]; for(i=0;i
using names...
分类:
编程语言 时间:
2015-04-21 00:06:31
阅读次数:
243
运用到的函数为:动态内存分配函数malloc() 比如:char *name=(char *)malloc(20); 相当与c++的new关键字动态内存释放函数free() 比如:free(name); 相当于c++的delete关键字计算数据空间的字节数sizeof()...
分类:
其他好文 时间:
2015-04-19 14:29:21
阅读次数:
148
1.malloc/free是C/C++语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。但是new能够自动分配空间大小,而malloc需要计算字节数。
2.对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,...
分类:
其他好文 时间:
2015-04-18 11:33:23
阅读次数:
151
C++顺序容器
一、 C++数组的描述
一维数组的动态内存分配:
Int *num=new int[len];
delete []num;
二维数组的动态内存分配:
1、知第二维
char (*num)[N];//指向数组的指针
num = newchar[m][N];
delete[]num;
2、知第一维
char*...
分类:
编程语言 时间:
2015-04-17 18:24:09
阅读次数:
182