为链表类型结构分配空间的C程序设计



嗨,我刚开始尝试在C中实现某种列表,只是为了更好地学习。我目前没有代码,只需要一些关于假设的帮助

#define MAX_LIST_SIZE 1024

typedef struct clist clist;
struct clist{

clist *next;
char  *data; 

}
void add_to_list(char *str, clist *current){
//what code goes in here
im guessing some sort of malloc adding the strlen of str plus the sizeof the clist
}
int main(){
clist mylistofstrings;
}

如果你能回答这个问题,我的下一个问题是,有没有一种方法可以使用宏或其他东西来改变结构,这样你就可以添加字符串,比如下面的

clist mystrings = ADDSTRING("add this");
ADDTOLIST(mystrings,"second string");

有趣的是,您必须注意以下几点:

如果你要将引用传递到你的链接列表,请访问:

  1. 您需要首先为堆中的每个节点分配结构。为了避免堆砸
  2. 您甚至可能不得不再次对字符串进行malloc,以避免堆栈崩溃
  3. 然后,您必须将每个节点彼此链接

如果您只是为了好玩,并且不打算将对结构的引用传递给不同的函数。那么你就不需要使用malloc了。直接初始化它们。

最新更新