欢迎光临散文网 会员登陆 & 注册

内存分配:堆(heap)和栈(stack)

2020-04-05 18:51 作者:Iammyself001  | 我要投稿

堆(heap)和栈(stack)使用:

  1. 通过malloc获取一块内存,指针在栈上面,

  2. 函数退出时,栈会弹出,所以就不再存在了

  3. 栈里面不能存太多内容,会栈溢出(stack overflow),所以这是需要malloc

  4. 函数传参,直接传栈上的指针,这个函数会发生段错误(aegfault),因为真实数据会被弹出,这个指针就变成野指针。

FILE相关函数:fopen、fread、fclose、rewind,用来处理文件,但是他们都是作用在文件结构体上面的(他属于C标准库里面自带的结构体,不需要自己定义)

errnoperror()报告错误,每当出错的时候,程序会设置一个errno的外部变量,用来标记具体发生什么,errno标记的仅仅是数字,可以使用perror()答应出错信息。

open_database()用来打开文件、分配内存

close_database()用来关闭文件、释放内存

char *strcpy(char *dest, const char *src);    仅可以复制字符串

char *strncpy(char *dest, const char *src, size_t n); 虽然可以指定传输个数,但是若提前遇到'\0'直接结束,小于n

void *memcpy(void *dest, const void *src, size_t n);可以复制任意内容,不仅仅是字符串。

使用{.id, .set}的方式初始化结构体当中的成员



内存分配:堆(heap)和栈(stack)的评论 (共 条)

分享到微博请遵守国家法律