1:sizeof()参数为指针的问题。
int * i; int j[10];
sizeof(i);//sizeof参数为指针时,返回指针数据类型所占空间,一般为4(unsigned int 所占byte);
sizeof(j);//sizeof参数为数组时,返回数组所占空间,此时为4*10=40;
2:
多线程中需考虑重入的问题。
localtime()与localtime_r()的区别:localtime 会在栈内存中开辟存储空间,当多个localtime同时执行时,结果存放在同一个内存空间,会出现典型的多线程race condition问题,即同一块栈内存空间被不同线程访问,内存的数据取决于最后一个执行写的线程。
可用localtime_r替代localtime ,即将数据存储在用户空间中。
3:
栈内存优化的问题:
进栈和出栈会消耗大量的资源,一般为function(void *,size_t)模型,传递数据的指针,以及数据的大小,避免资源消耗。
4:
结构中存储字符串的问题,
struct t{ char ta[12]; };
ta存储字符串时,必须先初始化0,并且确保存储的strlen(ptr)长度小于12,以保证正确读取字符串,或者利用3的方式,在函数中传入size_t,确保字符串下标。
5:
在编译安装时,提示缺少库;
如编译 ffmpeg ;./configure --enable libfaac ;
提示
ERROR libfaac not found ;
搜索该库的dev版本;执行apt-cache search libfaac ;打印出
libfaac-dev - AAC audio encoder (development)
libfaac0 - AAC audio encoder (library)
执行 apt-get install libfaac-dev;即可