c语言结构体指针的问题

请问各位大佬如下为何使用结构体指针运行会出错typedefstructCH{char*base;char*top;intstacksize;}SqStack,*Sq;ch... 请问各位大佬如下为何使用结构体指针运行会出错
typedef struct CH{
char * base;
char * top;
int stacksize;
}SqStack,*Sq;
char InitStack(){
Sq S;
S->base=(char)malloc(STACK_INIT_SIZE*sizeof(char));
if(!S->base) exit(error);
S->top=S->base;
S->stacksize=STACK_INIT_SIZE;
return S->base;
}
展开
 我来答
神话杜十三
2017-10-20 · TA获得超过207个赞
知道小有建树答主
回答量:217
采纳率:86%
帮助的人:165万
展开全部

Sq S;

这一行, 定义了 struct CH 的指针,但是没有实例化。

也就是你这个指针没有内容。会出现问题。 

Sq S;
S = (Sq)malloc(sizeof(SqStack));


return S->base;

还有这一行, S->base;是一个 char * 类型的指针。 而你函数的返回值是 char。

32位系统中, 指针的大小为4Byte, char的大小为1Byte。

应该也会出现问题。


还有, 如果还有问题, 请一同添附错误的提示信息(编译时的)。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式