如果把自定义函数内的内容搬到主函数里就不会运行错误
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函数