b*********n 发帖数: 1258 | 1 想要用qsort来sort一个char array, code如下,但是seg fault
不知道为什么,大家指点一下
#include
#include
#include
char* inString = "ncdoscndisoc";
int compare (const void* a, const void* b)
{
return ((*(char*)a) - (*(char*)b) );
}
int main ()
{
qsort (inString, 12, sizeof(char), compare);
for (int n=0; n<12; n++)
printf ("%c ",inString[n]);
return 0;
} |
k****f 发帖数: 3794 | 2 char inString[]="ncdosndisoc";
~~
【在 b*********n 的大作中提到】 : 想要用qsort来sort一个char array, code如下,但是seg fault : 不知道为什么,大家指点一下 : #include : #include : #include : char* inString = "ncdoscndisoc"; : int compare (const void* a, const void* b) : { : return ((*(char*)a) - (*(char*)b) ); : }
|
b*********n 发帖数: 1258 | 3 太帅了,果然就是这个问题
可以讲讲为什么吗?
我一直把char* a和char a[]认为是一样的
为什么这里就不行
难道是因为\0的原因?
谢谢
【在 k****f 的大作中提到】 : char inString[]="ncdosndisoc"; : ~~
|
k****f 发帖数: 3794 | 4 char*放在不可修改的地方
char[]是可以修改的。一般就在stack,
多来programming版,就会知道的
【在 b*********n 的大作中提到】 : 太帅了,果然就是这个问题 : 可以讲讲为什么吗? : 我一直把char* a和char a[]认为是一样的 : 为什么这里就不行 : 难道是因为\0的原因? : 谢谢
|
b*********n 发帖数: 1258 | 5 太帅了
谢谢
送大包子
【在 k****f 的大作中提到】 : char*放在不可修改的地方 : char[]是可以修改的。一般就在stack, : 多来programming版,就会知道的
|
k****f 发帖数: 3794 | 6 谢谢包子。。。
【在 b*********n 的大作中提到】 : 太帅了 : 谢谢 : 送大包子
|