代码
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int myCompare (const void * a, const void * b ) {
const char *pa = *(const char**)a;
const char *pb = *(const char**)b;
return strcmp(pa,pb);
}
int main() {
int i;
// const char *input[] = {"a","orange","apple","mobile","car"};
const char *input[1024];
input[0]="a";
input[1] = "orange";
input[2] = "apple";
input[3] = "apple";
input[4] = "mobile";
input[5] = "car";
int stringLen = sizeof(input) / sizeof(char *);
qsort(input, stringLen, sizeof(char *), myCompare);
for (i=0; i<stringLen; ++i)
printf("%d: %s\n", i, input[i]);
}
这段代码为什么会报 coredump
但是如果把input
变成const char *input[] = {"a","orange","apple","mobile","car"};
,那么就不会报错,求指点!!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.