标题:不看不知道
只看楼主
youxiaxyz
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2006-4-5
 问题点数:0 回复次数:2 
不看不知道

#include < stdio.h >
#include <stdlib.h>
#include <string.h>
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;


typedef struct{
char * ch;
int length;
}HString;


Status StrAssign(HString &T,char *chars){
int i ,j;
char * p = T.ch,c;
j = strlen(chars);
for(i = 0,c = chars[i]; c;++i,++c);//surpise c = chars[i] char c c++
if(!i){T.ch = NULL; T.length = 0;}
else{
if(!(T.ch = (char *)malloc(j*sizeof(char))))//将i改为J更好
exit(OVERFLOW);
T.ch = chars;//surpise T.ch[0.1.2.3......] = chars[0.1.2.3......]
T.length = j;//T.length = i i是指针长度随机的
}
return OK;
}


void main(){
HString T;
char s[100];
printf("please input a string\n");
gets(s);
StrAssign(T,s);
puts(T.ch);
printf("the length is %d\n",T.length);
//if( T.length ) free( T.ch );//为何出错指点一下
}

2006-04-16 19:58
andyss
Rank: 1
等 级:新手上路
帖 子:189
专家分:0
注 册:2006-4-8
得分:0 
应该不能free,可能没这个权限吧!要全部把T删掉才可以.

幽幽黄桷兰----建四狼
2006-04-16 20:01
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
得分:0 

#include <stdio.h >//多加了一个空格
#include <stdlib.h>
#include <string.h>
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;


typedef struct{
char * ch;
int length;
}HString;

//在这里∨ 把&去掉
Status StrAssign(HString &T,char *chars){
int i ,j;
char * p = T.ch,c;
j = strlen(chars);
for(i = 0,c = chars[i]; c;++i,++c);//surpise c = chars[i] char c c++
if(!i){T.ch = NULL; T.length = 0;}
else{
if(!(T.ch = (char *)malloc(j*sizeof(char))))//将i改为J更好
exit(OVERFLOW);
T.ch = chars;//surpise T.ch[0.1.2.3......] = chars[0.1.2.3......]
T.length = j;//T.length = i i是指针长度随机的
}
return OK;
}


void main(){
HString T;
char s[100];
printf("please input a string\n");
gets(s);
StrAssign(T,s);
puts(T.ch);
printf("the length is %d\n",T.length);
if( T.length ) free( T.ch );
}

2006-04-16 22:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-57897-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.361442 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved