首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

看看这个程序有什么地方不妥当的?总觉得不好,该怎么解决

2012-03-20 
看看这个程序有什么地方不妥当的?总觉得不好#includestdio.h#includemalloc.h#includestdlib.h#incl

看看这个程序有什么地方不妥当的?总觉得不好
#include   <stdio.h>
#include   <malloc.h>
#include   <stdlib.h>
#include   <string.h>


typedef   struct   SqStackTag
{
char   *base;
char   *top;
int   stacksize;
}SqStack;

void   InitStack(SqStack   &s);
void   Push(SqStack   &s,char   x);
char   GetTop(SqStack   &s);

void   main()
{
char   strTemp[]= "abcdefg ";
int     len;
int     i   =   0;
SqStack   strStack;
InitStack(strStack);
len   =   strlen(strTemp);
while(strTemp[i]!= '\0 ')
{
Push(strStack,strTemp[i]);
i++;
}


for(i   =   0;i   <   len;i++)
{
strTemp[i]   =   GetTop(strStack);
}
strTemp[len]   =   '\0 ';
free(strStack.base);
printf( "%s ",strTemp);
}


void   InitStack(SqStack   &s)
{
s.base   =   (char*)malloc(100*sizeof(char));
if(!s.base)
{
exit(1);
}
s.top   =   s.base;
s.stacksize   =   sizeof(char);
}  

void   Push(SqStack   &s,char   x)
{
if(s.top   -   s.base   > =   s.stacksize)
{
s.base   =   (char*)realloc(s.base,(s.stacksize+1*sizeof(char)));
if(!s.base)
{
exit(1);
}
s.top   =   s.base   +   s.stacksize;
s.stacksize++;
}
*s.top   =   x;
s.top++;
}

char   GetTop(SqStack   &s)
{

return   *--s.top;
}
这个是字符串倒序用Stack实现的.

函数入参用&在C语言中是不是不可以的,总觉得这样做不好

[解决办法]
函数入参用&在C语言中是不是不可以的,总觉得这样做不好
===========================
引用 相对来说,
比指针更“安全”一些(其实就是习惯问题)。

只要支持 C99 标准,
就可以使用 & 语法了。

一般的C++编译器都支持C99标准,
但是常用的 C编译器 没有支持 ~
不过,
现在好像都使用C++编译器了 ......

热点排行