windows里命令行参数只有可执行程序的时候,可以把文件拖拽到可执行程序上面相当于 把文件名当参数传递了变量作用域:#include #include int main(){ int i = 10; while( i-- ) //这个i是上面的i,所以只会输出10次 { int i = 0;//去...
分类:
其他好文 时间:
2014-09-02 15:42:15
阅读次数:
142
堆(Heap)栈(Stack)1、内存分配方面: 堆:一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式是类似于链表。可能用到的关键字如下:new、malloc、delete、free等等。 栈:由编译器(Compiler)自动分配释放,.....
分类:
其他好文 时间:
2014-09-02 15:36:44
阅读次数:
230
问题的提出
pro1.c
#include
#include
main()
{
int *a=malloc(4);
*a=9999;
//*(a+1)=1000;
//*(a+1000)=10000;
printf("%p\n",a);
while(1);
}
gcc pro1.c -omain1 运行 main1 结果:0x8a01008
pro...
分类:
系统相关 时间:
2014-09-01 22:45:43
阅读次数:
275
1.如果返回一个基本类型的变量,比如:inta;a=5;returna;那么就会a的一个拷贝,即5返回,然后a就被销毁了。尽管a被销毁了,但它的副本5还是成功地返回了,所以这样做没有问题。2.但是对于非动态分配(new/malloc)得到的指针,像1那么做就会有问题,比如在某个函数内部:inta[]...
分类:
其他好文 时间:
2014-08-31 00:24:00
阅读次数:
319
1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。2,对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/...
分类:
其他好文 时间:
2014-08-30 23:01:10
阅读次数:
193
我们都知道,使用malloc/calloc等分配内存的函数时,一定要检查其返回值是否为“空指针”(亦即检查分配内存的操作是否成功),这是良好的编程习惯,也是编写可靠程序所必需的。但是,如果你简单地把这一招应用到new上,那可就不一定正确了。我经常看到类似这样的代码:int*p=newint[SIZE...
分类:
其他好文 时间:
2014-08-30 21:37:10
阅读次数:
305
两者区别;1malloc必须检查是否分配成功。New不需要,要不成功要不异常2malloc不对申请的变量初始化,而new可以对类类型运用构造函数进行初始化3对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函...
分类:
其他好文 时间:
2014-08-30 21:36:10
阅读次数:
291
free函数原型: void free(void *ptr)功 能: 释放ptr指向的存储空间。被释放的空间通常被送入可用存储区池,以后可在调用malloc、realloc以及calloc函数来再分配。程序例:#include #include #include #include int main(...
分类:
其他好文 时间:
2014-08-29 18:04:38
阅读次数:
161