指针数组输入三个字符串后,输不出来了

img

img

img

用指针数组输入三个字符串,将三个字符串排序后输出,不知道哪一步搞错了,输不出来了

你需要申请内存 请参考

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
void sort(char* a[])
{
    char* temp=NULL;
    int i, j;
    for (i = 0;i < 3;i++)
    {
        for (j = i + 1;j < 3;j++)
        {
            if (strcmp(a[i], a[j]) > 0)
            {
            
                temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }

    }

}
int main()
{
    int i;
    char* a[3];
    for (i = 0;i < 3;i++)
    {
        printf("请输入第%d个字符串", i + 1);
        a[i] = (char*)malloc(sizeof(char) * 10);//申请10个长度空间
        scanf("%s",a[i]);
    }
    sort(&a);
    for (i = 0;i < 3;i++)
    {
        printf("%s\n", a[i]);
    }

    return 0;
}

(1)输入字符串scanf里面不用写&;
(2)看你的样子好像是想把多个字符串存在一个字符数组里,这样不行的。