上周有个面试题,是个算法方面的(合并两个已排序好的数组),我从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++];
}
网友评论