精品日本亚洲一区二区三区,伊人久久狼人色精品无码 ,日鲁夜鲁天天鲁视频,国产精品久久亚洲,秋霞理论理论福利院久久,国产日韩欧美视频一区二区三区,色九九,国产精品美女久久久久久免费 ,九九干,韩国精品一区二区三区

考研論壇

標題: 【討論】數據結構編程問題(串的堆分配存儲方式) [打印本頁]

作者: xingzhe826    時間: 2011-10-16 20:41
標題: 【討論】數據結構編程問題(串的堆分配存儲方式)
本帖最后由 xingzhe826 于 2011-10-16 20:55 編輯

編譯沒錯,但就是不能運行,不知道怎么回事、、、誰幫幫我。感激
#include "stdio.h"
#include "stdlib.h"
#define TRUE     1
#define FALSE    0
#define OK       1
#define ERROR    -1
#define OVERFLOW -2
typedef int Status;

//串的堆分配存儲表示
typedef struct{
char *ch;     //串址
int length;   //串長
}HString;
//串操作聲明
Status InitString_H(HString&);
Status StrAssign_H(HString&,char*);
Status StrCopy_H(HString&,HString);
void StrPrint_H(HString);

Status InitString_H(HString &S)
{
if(S.ch) free(S.ch);
if(!(S.ch=(char*)malloc(sizeof(char))))
  exit(OVERFLOW);     //分配空間失敗
S.ch=NULL;
S.length=0;
return OK;
}
Status StrAssign_H(HString &T,char *chars)
{//串賦值
int i,j;
char *c;
if(T.ch) free(T.ch);        //釋放非空字符串
for(i=0,c=chars;*c;++i,++c); //串長
if(!i){
  T.ch=NULL;
  T.length=0;
}
else{
  if(!(T.ch=(char*)malloc(i*sizeof(char))))
   exit(OVERFLOW);     //分配空間失敗
  for(j=0;j<i;j++)
   T.ch[j]=chars[j];
  T.length=i;
}
return OK;
}
Status StrCopy_H(HString &T,HString S)
{//復制字符串
int i;

if(T.ch) free(T.ch);
T.ch=(char*)malloc(S.length*sizeof(char));
if(!T.ch) exit(OVERFLOW);
for(i=0;i<S.length;i++)
  T.ch=S.ch;
T.length=S.length;
return OK;
}

void StrPrint_H(HString S)
{//屏幕顯示
int i;
for(i=0;i<S.length;i++)
  printf("%c",S.ch);
printf("\n");
}

void main()
{
HString S,T;
char *c;

c="孫大圣";
StrAssign_H(S,c);
StrPrint_H(S);

StrCopy_H(T,S);
StrPrint_H(T);
}

1.jpg (28.52 KB, 下載次數: 11)

1.jpg

作者: 376954057    時間: 2011-10-17 10:28
你發到csdn上看看。。
作者: lauryprincess    時間: 2011-10-17 15:53
這。。。。,請把所有的"if(T.ch) free(T.ch);"刪了。表亂用,明白?  還有   屏幕顯示那個函數錯了,
void StrPrint_H(HString S)
{//屏幕顯示
int i;
for(i=0;i<S.length;i++)
  printf("%c",S.ch【i】);
printf("\n");
}
作者: xingzhe826    時間: 2011-10-17 16:46
lauryprincess 發表于 2011-10-17 15:53
這。。。。,請把所有的"if(T.ch) free(T.ch);"刪了。表亂用,明白?  還有   屏幕顯示那個函數錯了,
void ...

哦   




歡迎光臨 考研論壇 (http://www.5522pp.com/) Powered by Discuz! X3.2