字符串指针变量作函数参数

问题遇到的现象和发生背景

如果把自定义函数内的内容搬到主函数里就不会运行错误

问题相关代码,请勿粘贴截图
void judge(int num,char *string)
{
    for(int a=2;a<num;a++)
    if(num%a==0){string="否";break;}
    else string="是";
}
int main()
{
    char *string;
    int num=5;
    judge(num,string);
    printf("%s",string);
}

运行结果及报错内容

程序输出了null

我的解答思路和尝试过的方法


本意是想着在自定义函数里对字符串指针变量赋值,然后再主函数里输出。

我想要达到的结果

想着程序能输出“是”或者“否”。


#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void judge(int num, char* string)
{
    for (int a = 2; a < num; a++)
        if (num % a == 0) { strcpy(string, "否"); break; }
        else strcpy(string ,"是");
}
int main()
{
    char* string=(char*)malloc(sizeof(char)*20);
    int num = 5;
    judge(num, string);
    printf("%s", string);
}

char *string;
没有开辟内存空间
而且字符串比较相等 在c++中 应该使用 strcmp函数