面试题答案
一键面试#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 比较函数,用于qsort
int compare(const void *a, const void *b) {
return strcmp(*(char **)a, *(char **)b);
}
void sortAndFree(char **strArray, int size) {
// 使用qsort进行排序
qsort(strArray, size, sizeof(char *), compare);
// 释放动态分配的内存
for (int i = 0; i < size; i++) {
free(strArray[i]);
}
// 释放指针数组本身的内存
free(strArray);
}
你可以使用以下方式调用这个函数:
int main() {
int size = 3;
char **strArray = (char **)malloc(size * sizeof(char *));
strArray[0] = strdup("banana");
strArray[1] = strdup("apple");
strArray[2] = strdup("cherry");
sortAndFree(strArray, size);
return 0;
}