首页 > 其他分享 >c语音实现单链表初始化的四种方式

c语音实现单链表初始化的四种方式

时间:2024-06-21 11:29:52浏览次数:10  
标签:myLink 初始化 head 单链 initlink temp int next 语音

typedef struct myLink {
	int data;
	struct myLink *next;
} myLink, *myLLink;

1、对于上面的简单结构,用函数赋值需要传递引用,需要用到指针的指针。对指针使用不是很清楚的童鞋很是头痛。

void initlink(myLink** head) {
	*head= (myLink*)malloc(sizeof(myLink));
	if(!*head){
		printf("没有可用内存!");
	}
	(*head)->next = NULL;
}


int main() {
	
  	myLink* head;  
	initlink(&head); 
}

2、为避免使用指针的指针,可以利用函数返回的方式给指针赋值。这也是最简单,最易理解的方式。

myLink* initlink( ) {
	myLink* temp = (myLink*)malloc(sizeof(myLink));
	temp->next = NULL;
	return temp;
}


int main() {
	
  	myLink *head; 
	head = initlink();
}

3、变相使用指针的指针。myLLink是myLink结构类型的指针。


void initlink(myLLink* head) {
	*head = (myLink*)malloc(sizeof(myLink));	
	(*head) ->next=NULL;
}

int main() {
	
  	myLLink head;  
	initlink(&head); 
}

4、利用全局变量避免传递指针

#include <stdio.h>
#include <stdlib.h>

typedef struct myLink {
	int data;
	struct myLink *next;
} myLink;

myLink * head;
void initlink( ) ;
void creatlink( int data);
void showlist();

int main() {

	initlink();	
	creatlink(32);
	creatlink(42);
	creatlink(22);
	creatlink(52);
	showlist();
}
void initlink( ) {
	head = (myLink*)malloc(sizeof(myLink));
	head->next = NULL; 
}
void creatlink( int data) {

	myLink* temp = (myLink*)malloc(sizeof(myLink));
	temp->data = data;
	temp->next = head->next;
	head->next = temp;
}

void showlist() {
	myLink* temp = head->next;
	while (temp) {
		printf("%d\n", temp->data);
		temp = temp->next;
	}
}

标签:myLink,初始化,head,单链,initlink,temp,int,next,语音
From: https://blog.csdn.net/qq_29448131/article/details/139837325

相关文章

  • 基于语音信号MFCC特征提取和GRNN神经网络的人员身份检测算法matlab仿真
    1.算法运行效果图预览    2.算法运行软件版本MATLAB2022a 3.部分核心程序P=[Dat1_wav1;Dat1_wav2;Dat2_wav1;Dat2_wav2;Dat3_wav1;Dat3_wav2;Dat4_wav1;Dat4_wav2];T=[ones(800,1);2*ones(800,1);3*ones(800,1);4*ones(800,1)];%GRNN训练net=newgrnn(......
  • Meta FAIR研究新成果:图像到文本、文本到音乐的生成模型,多标记预测模型以及AI生成语音
    MetaAI研究实验室(FAIR)公开发布了多项新研究成果,包括图像到文本和文本到音乐的生成模型,多词预测模型,以及检测AI生成语音的技术。发布的成果体现了开放性、协作、卓越和规模化等核心原则。公开早期研究工作旨在激发迭代,推动AI负责任发展。MetaChameleon系列模型可将文本......
  • 【重写SpringFramework】第一章beans模块:Bean的初始化(chapter 1-8)
    1.前言前边我们介绍了创建实例和填充对象的流程,这是整个创建流程最重要的工作。有时候用户需要对Bean进行自定义的操作,这一过程称为初始化。此外,还有一些比较特殊的对象,本身管理着一定的资源,当对象销毁时需要释放这些资源,因此我们还需要相应的销毁操作。初始化和销毁操作......
  • ChatTTS语音生成模型:突破开源语音天花板的新星
    目录引言一、ChatTTS技术特性解析二、ChatTTS的实现原理三、ChatTTS的多元化用途四、ChatTTS的实践操作1、便捷的在线试用2、音色调节与克隆3、长文本处理的挑战与展望五、ChatTTS部署实践1、下载模型2、下在源代码3、创建虚拟环境4、安装相关依赖5、简单测试6、保存本......
  • 【CS.SE】从源码到实践:探索日常对话的生成性语音模型ChatTTS
    文章目录1项目介绍1.1功能与特色2技术分析2.1模型架构3项目实践3.1快速上手4项目总结ReferencesGitcode上有许多优秀的开源项目,今天我们要介绍的是一个令人耳目一新的项目——ChatTTS。ChatTTS是一个基于深度学习的文本转语音(TTS)系统,它的目标是通过先进......
  • 2、k8s-集群环境的搭建-docker安装部署-k8s组件(kubelet)安装部署-集群初始化-fannel网
    kubernetes集群分为两类:·一主多从:一台master节点和多台node节点、搭建简单、但是有单机故障的风险、适合用于测试环境·多主多从:多台master节点和多台node节点、搭建麻烦、安全性高、适用于生产环境 ===================================一主多从搭建=============......
  • Java数组 详解(初始化 格式 索引 地址值 遍历 …)
    数组什么是数组?数组指的是一种容器可以用来存储同种数据类型的多个值小结:数组指的是一种容器可以用来存储同种数据类型的多个值//数组容器在存储数据的时候需要结合隐式转换考虑//例如int类型的数组容器( byte short int )//例如double类型的数组容器......
  • #C语言结构体/结构体指针/单链表学习必备总结(浓缩版)#
    一.结构体的定义结构体是一种用户自定义的数据类型,用于将多个不同类型的数据组合在一起形成一个新的数据类型。结构体由多个成员变量组成,每个成员变量可以是不同的数据类型,可以是基本数据类型(如整型、浮点型、字符型等)或其他结构体类型。结构体的成员变量在内存中是按照声明的......
  • AI培训讲师叶梓:高效零样本语音合成技术与FlashSpeech的突破
     在人工智能领域,语音合成技术一直是研究的热点。随着语言模型和扩散模型的进展,零样本语音合成技术取得了显著成就,但这些技术在生成过程中存在速度慢和计算成本高昂的问题。这不仅限制了它们的实际应用,也对资源的有效利用提出了挑战。为了解决现有技术的局限性,研究者们提出了F......
  • Spring初始化之循环依赖
    InjectionMetadata.injectresolveFieldValue解析去解析对象的属性时会自动去解析该属性是否是Bean依赖对象DefaultListableBeanFactory.doResolveDependency会去调用DependencyDescriptor.resolveCandidate方法而DependencyDescriptor.resolveCandidate方法就是回去调用B......