C++内存分配的区: 1.栈:程序运行时分配的,局部变量,以及传入的参数等存储的地方,在程序结束的时候会回收 2.堆:new分配,由delete释放 3.自由存储区:malloc分配 4.全局/静态存储区:全局变量或静态变量存储的地方 5.常量存储区:存储常量的地方,不允许修改堆和...
分类:
编程语言 时间:
2015-07-30 12:51:20
阅读次数:
146
1.ARP欺骗是基于什么原理实现的?2.C语言中的malloc和C++中的new有何区别?3.简述TCP建立连接断开连接的过程4.聊一聊对于JAVA-GC的理解5.linux的命令ls|grep怎么作用的6.对一个没有排序的数组,用二分法查找,会怎么样?7.给出二叉树中序,后序遍历,请还原二叉树,并...
分类:
其他好文 时间:
2015-07-29 22:51:55
阅读次数:
119
内存五大区域 //栈
int a=10;
NSLog(@"%p",a);
//堆
int *p=malloc(40);
NSLog(@"%p",p);
//全局
static int b=10;
NSLog(@"%p",b);
//常量
char *str="iphone";
NSLog(@"%p",str...
分类:
移动开发 时间:
2015-07-28 21:14:15
阅读次数:
201
1、函数原型及说明: void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。 关于分配失败的原因,应该有多种,比如说空间不足就是一种。 void free(void *FirstByte):...
分类:
其他好文 时间:
2015-07-28 20:15:19
阅读次数:
73
-(void)getSystemInfo{
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = (char*)malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
NSStri...
分类:
移动开发 时间:
2015-07-28 18:37:50
阅读次数:
166
程序变量分区中栈和堆的区别(1)申请方式stack: 由系统自动分配。 例如,声明在函数中一个局部变量 int b; 系统自动在栈中为b开辟空间。heap: 需要程序员自己申请,并指明大小,在C中malloc函数,C++中是new运算符。如p1 = (char *)malloc(10); p1 = ...
分类:
其他好文 时间:
2015-07-28 18:01:56
阅读次数:
133
c++在很多地方都采用了对其分配内存的方式,比如一个类对象数据成员的存放就按照对齐方式存放。对齐有利于存取效率的提高:比如有些平台每次读取数据都是从偶数地址开始,若一个int型存放在偶数地址开始处,则一次读周期就可以读出这个整数,而如果存放在奇数地址处,则需要两个读周期。标准库提供的malloc.....
分类:
其他好文 时间:
2015-07-28 14:30:42
阅读次数:
129
内存的分配方式: 1.静态存储区分配:全局变量,static变量等,在程序编译时已经分配了存储内存,在程序运行的整个期间一直存在 2.程序的堆栈上:程序的局部变量,包括程序的形参等,只存在于程序的运行期间 3在堆heap上分配的:动态内存分配,malloc或者new常见的内存错误:(1)内存分...
分类:
编程语言 时间:
2015-07-27 22:42:13
阅读次数:
153
free和delete只是把指针所指向的内存给释放掉了,但是指针本身并没有被删掉。所以在释放掉内存后一定要记得将指针指向NULL ,动态内存分配不会自动的释放,一定要记得free掉
分类:
其他好文 时间:
2015-07-27 22:36:44
阅读次数:
111
int* a = new int; 分配了存储空间,但没有赋初值
int* a = new int(10) 分配了存储空间,并赋初值,即*a = 10
int* a = new int[100] 分配了存储空间,但没有赋初值,a为长度为100的数组的首地址
int* a = new int[100]() 分配了存储空间,并将数组清零,a为长度...
分类:
编程语言 时间:
2015-07-27 11:15:57
阅读次数:
130