(转)发现两个有用的C函数_alloca()、_msize()
转自:
http://blog.csdn.net/pony12/article/details/8678071
(1)_alloca()
alloca也是用来分配存储空间的,它和malloc的区别是它是在当前函数的栈上分配存储空间,而不是在堆中。
其优点是:当函数返回时,自动释放它所使用的栈。
(2)_msize()
取得malloc()分配的空间大小
★注意:该函数为Windows独有,UNIX没有对应的函数★
测试用例代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h> int main(int argc, char *argv[])
{
char * p = (char*)malloc(*sizeof(int));
char *p1 = (char*)alloca(); printf("sizeof(p) = %d\n", _msize(p)); strcpy(p1, "This is a test data!");
printf("p1 = [%s]\n", p1); // printf("_msize(p1) = %d\n", _msize(p1)); // 错误,提示堆被破坏
printf("sizeof(p1) = %d\n", sizeof(p1)); free(p); return ;
}
结果如下:

(转)发现两个有用的C函数_alloca()、_msize()的更多相关文章
- win下发现两个有用的快捷键
调出命令行工具:win+x然后a.默认是cmd的管理员模式,可以改成powershell. 从当前目录打开命令行:shift + 鼠标右键
- loadrunner比较有用的字符串函数
loadrunner比较有用的字符串函数 ******************************************************************************* ...
- PHP很有用的一个函数ignore_user_abort ()
PHP很有用的一个函数ignore_user_abort () 2013-01-16 14:21:31| 分类: PHP | 标签:php 函数 |举报|字号 订阅 ignore_us ...
- 100多个很有用的JavaScript函数以及基础写法大集合
100多个很有用的JavaScript函数以及基础写法大集合 1.document.write("");为 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:docume ...
- JavaScript两种方法来定义一个函数
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 收集整理的非常有用的PHP函数
原文:收集整理的非常有用的PHP函数 项目中经常会需要一些让人头疼的函数,作为开发者应该整理一个自己的函数库,在需要之时复制过来即可.本文作者收集整理数十个PHP项目中常用的函数,保证能正常运行,你只 ...
- 面试题----入参两个Integer,无返回值,然后使这个两个值在调用函数后交换
我最近看到过一个比较好玩的面试题. 写个方法,入参两个Integer,无返回值,然后使这个两个值在调用函数后交换 很有意思的一个题目,引发我的深思,根据一路的学习过来,下面把实现代码贴出来,方便学习. ...
- MongoDB比较两列大小 使用$subtract函数
是找出整个表 a大于b的总数量,要怎么操作数据库呢,那就要用到$subtract函数 MongoDB比较两列大小 使用$subtract函数, // MongoDB 比较两列大小求出 啊>b 的 ...
- mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法
mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法: 语法: TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2) 说明: 返回日 ...
随机推荐
- 简单实用的HTML代码
简单实用的HTML代码 一.HTML各种命令的代码: 1.文本标签(命令) <pre></pre> 创建预格式化文本 <h1></h1> 创建最大的标题 ...
- Mybatis Generator最完整配置详解
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...
- vs2010中socket链接错误LINK2019
解决方法参考下面链接: http://blog.163.com/strive_only/blog/static/893801682009225112354746/
- MYSQL存储过程中-流程控制语句
存储过程中常用的流程控制 复习下存储过程内部的语法 定义存储过程体的局部变量: 定义方法:DECLARE a INT DEFAULT 100或者DECLARE a INT ; SET a=100; ...
- 【mysql】1206 SQLSTATE: HY000 (ER_LOCK_TABLE_FULL) 问题
最近在做一个项目,其中一需求是:部分数据库中的数据需要定时删除掉(满足一定条件,比如7天前的数据都不保留) 最初的执行方法: 使用Quartz定时执行数据库操作,进行数据删除,数据库操作使用delet ...
- knockout.js简单实用教程1
第一次接触knockout是在一年多之前吧.当时是接手了一个别人的项目,在项目中有用到knockout来进行数据的绑定.也就开始学习起来knockout.在之后的项目中也多次用到了这个.在第一次开始学 ...
- mysqlbackup
mysqlbackup 使用学习 1.设置数据库用户的相关权限 '; grant reload,replication client,super,process on *.* to backupuse ...
- Effective Java单元测试JUnit - 就是爱Java
实作了RoleImpl class,现在要开始单元测试了,或许你会觉得奇怪,才刚做好一个class而已,它并没有商业规则,只有getter/setter与clone(),那是要测试什么呢?没错,传统上 ...
- Ext4报错Uncaught Ext.Loader is not enabled
提示: Uncaught Ext.Loader is not enabled, so dependencies cannot be resolved dynamically. Missing requ ...
- NOI十连测 第五测 T1
#include<cstdio> #include<cstring> #include<cmath> #include<iostream> #inclu ...