C语言常见错误
1. 索引数组时的防止越界的错误写法
int arr[MAX] = {0};
在某处索引该数组时,为了防止下标越界,可能会这样写
count = get_index();
if arr[count] > 0 && count < MAX // 在count >= MAX时,第一个判断条件其实已经越界了
{
do_something()
}
2. 在两个线程间传递指针
尽量不要在两个线程间传递指针,如果一定要传递,则遵循:
1. 谁申请的,谁释放
2. 不要把栈地址传递给另一个线程
3. 对有符号整数进行移位操作
4. unsigned int never exceeds the value 0xFFFFFFFF