C标准库中的alloca函数
头文件#inlcude <malloc.h>
原型:
void * __cdecl alloca(size_t);
参数:size_t: 申请分配内存的尺寸
返回值:void*: 分配到的内存地址alloca与malloc,calloc,realloc类似,需要注意的是它申请的是“栈(stack)”空间的内存,用完会在退出栈时自动释放,无需手动释放。alloca不宜使用在必须广泛移植的程序中, 因为有些机器不一定有传统意义上的”堆栈”。
C++中memset函数的用法
memset:char型初始化函数
头文件:<string.h> 或 <memory.h>
函数原型:void *memset(void *s , int ch , size_t  n )memset(结构体/数组名 , 用于替换的ASCII码对应字符 , 前n个字符 );memset(结构体/数组名 , "用于替换的字符“ , 前n个字符 );
函数解释:将s中的前n个字节用ch替换并且返回s
函数作用:在一段内存块中填充某一个给定的值,常用于较大的对结构体和数组的清零操作。
示例1
#include<iostream>//#include"string.h"using namespace std;int main(){char str[10];str[9] = 'w';memset(str,97,9);for(int i=0;i<10;i++){cout<<str[i]<<" ";}return 0;}
输出
a a a a a a a a a w
:::info
说明:使用memset似乎不需要使用额外的头文件。
:::
示例2
#include<iostream>//#include"string.h"using namespace std;int main(){char str[10];str[9] = 'w';memset(str,97,sizeof(char)*10);for(int i=0;i<10;i++){cout<<str[i]<<" ";}return 0;}
输出
a a a a a a a a a a
示例3
#include<iostream>using namespace std;int main(){char str[10];memset(str,65,sizeof(str)-3);for(int i=0;i<10;i++){cout<<str[i]<<" ";}return 0;}
输出
A A A A A A A
