求大神赐教,c语言中,函数的参数中含有char *类型。应该怎样定义这个变量呢?

譬如void fun(char *s ,int a),
如果直接定义char *s; 编译没问题,运行时是不通过的,似乎是不能向其赋值
更不能char*s =NULL ;空指针不能赋值
所以我该怎么定义?
在linux下报错是 段错误(核心已转储)
求解啊求解!

第1个回答  2016-12-07

指针类型,你需要自己分配内存

#include<stdio.h>
#include<malloc.h>
int main(void)
{
char *s = ( char*)malloc(100);
gets(s);
printf("%s",s);
return 0;
}

本回答被提问者和网友采纳
第2个回答  2016-12-07
指针是NULL的不行 ,,,,, 初始化一下,就可以,如调用时传的是char[]

~~~~~
第3个回答  推荐于2018-04-29
char *ss=(char *)malloc(100*sizeof(char));
fun(s,100);

本回答被网友采纳
第4个回答  2018-04-26
没懂你的意思,是要传参?
相似回答