内存分配:堆(heap)和栈(stack)
2020-04-05 18:51 作者:Iammyself001 | 我要投稿
堆(heap)和栈(stack)使用:
通过malloc获取一块内存,指针在栈上面,
函数退出时,栈会弹出,所以就不再存在了
栈里面不能存太多内容,会栈溢出(stack overflow),所以这是需要malloc
函数传参,直接传栈上的指针,这个函数会发生段错误(aegfault),因为真实数据会被弹出,这个指针就变成野指针。

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

errno和perror()报告错误,每当出错的时候,程序会设置一个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}的方式初始化结构体当中的成员




