指针和字符数组,指针数组问题

img


为什么n等于1的时候可以成功,大于等于二,就不让输第二个及以上的

char *s[n] 定义了指针数组,且 n 不是常量,同时没有给它分配空间,修改如下,供参考:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n,i,j,number=0,max=0;
    scanf("%d", &n);
    char **s = (char**)malloc(sizeof(char*)*n),b;
    for (i=0;i<n;i++)
    {
        s[i] = (char*)malloc(sizeof(char)* 64);
        scanf("%s", s[i]);
    }
    for (j=0;j<n;j++)
    {
         // 原代码。。。。。
         printf("%s\n",s[j]);
    }
    return 0;
}

不学c语言