基于c语言数据结构求串长函数

问题遇到的现象和发生背景

基于c语言的数据结构—求串长函数

用代码块功能插入代码,请勿粘贴截图
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
typedef struct{
    char *ch;
    int length;
}BBT;
int StrAssign(BBT &T,char *chars){
    int i ;
    char *c;
    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)))){
            return -1;
        }
        for(int n=0;n<=i-1;n++)
            T.ch [n]=chars[n];
        T.length =i;
        }
    return 0; 
}
int StrLength(BBT S){
    return S.length;
} 

运行结果及报错内容
[Error] ld returned 1 exit status
我想要达到的结果

之前好多程序出现这个错误,但是不知道哪错了

单这段代码看不出有问题。运行截图:

img

可能是之前编译运行的程序没有退出导致链接失败。


int StrAssign(BBT &T,char *chars){
&T引用是C++的内容,纯c没有这个,改用指针*T
21-23行修改一下
for (int n = 0; n < i; n++)//
    T->ch[n] = chars[n];
T->ch[i] = 0;//字符串末尾补零
T->length = i;