猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
一个结构体数组,如何输出前面的有效长度部分??
/* 比如定义了一个长度为10的结构体数组,但是现在只用了5个长度,如何只输出这5个有效长度的信息? */
奕吉啊
浏览 1872
回答 4
4回答
MinRam
#include<stdio.h> #include<malloc.h> typedef struct { int useLen; // 有效长度 int *data; // 实际数据 int allLen; // 实际容量 }StruTest; #define ALL_LEN 10 int main(void) { int len; StruTest * tmp = (StruTest *)malloc(sizeof(StruTest)); // 申请一个结构体 printf("有效长度:"); scanf("%d", &len); tmp->allLen = ALL_LEN; tmp->useLen = len; tmp->data = (int *)malloc(ALL_LEN*sizeof(int)); printf("输入数组"); for (int i = 0; i < tmp->useLen; ++i) { scanf("%d", &tmp->data[i]); } printf("该结构体的内容如下:"); for (int i = 0; i < tmp->useLen; ++i) { printf("%d ", tmp->data[i]); } free(tmp->data); free(tmp); }
0
0
0
MinRam
想到的一种解决方案。再建立个结构体,(unsigned int length // 存有效长度 struct xxx data[10];)
1
0
1
Xyino_Snake
你所说的话有歧义。我按两个意思分别回答你。 1.用带长度的指针模板。 tpl<tpn type> stc hn_type { type * h; int n; //其他方法自己写吧。 }; h是指针,n是长度。只需再接一个专门接口即可。 2.后面的就不用处理也就是了。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
C
typedef入门问题
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续