用c语言时犯的错

上周有个面试题,是个算法方面的(合并两个已排序好的数组),我从C语言写的,回来后复盘下,有两方面的问题:

  • c语言的语法有多处犯错
void sort(int a[]){
  //1 求出来的aCount一直会是2,因为函数调用数组传递是指针传递,a是一个指针。数组长度应该外面传入
  int aCount = sizeof(a)/sizeof(a[0]);
  //2 用变量来创建数组,应该使用malloc
  int newA[aCount] = {0};
  //3 声明与初始化变量时,只有temp会被初始化为0,可以这样声明,但要一一初始化。
  int i,j,temp = 0;
}
  • 算法中细节处理的不到位
  //丢失了
  if (indexA < sizeA) {
        pTemp[index++] = a[indexA++];
    }
    if (indexB < sizeB) {
        pTemp[index++] = b[indexB++];
    }

你可能感兴趣的:(用c语言时犯的错)