C言語質問スレ【激初心者】
■ このスレッドは過去ログ倉庫に格納されています
0268デフォルトの名無しさん
2005/11/01(火) 17:26:58#include <stdlib.h>
#include <string.h>
#define MAXDATA 3
#define MAXSTR 256
int cmp(const void * , const void *);
int main(void){
char data[MAXDATA][MAXSTR];
int i;
for(i = 0 ; i < MAXDATA ; i++)
printf("%d人目の名前 -> " , i + 1); scanf("%s" , data[i]);
qsort(data , MAXDATA , sizeof(char *) , (int(*)(const void * , const void *))cmp);
for(i = 0 ; i < MAXDATA ; i++)printf("%s\n" , data[i]);
return 0;
}
int cmp(const void *s1 , const void *s2){
return strcmp(*(char **)s2 , *(char **)s1);
}
このように変更してみましたが、やっぱりうまく動きません・・・。
qsortの比較関数を最初のままにし、二次元配列の宣言をこの状態にしたときには、
なぜかdata[0]の中身が変化してしまいました・・・。
■ このスレッドは過去ログ倉庫に格納されています