亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一個結構體數組,如何輸出前面的有效長度部分??

一個結構體數組,如何輸出前面的有效長度部分??

C
奕吉啊 2017-03-20 15:58:35
?/* 比如定義了一個長度為10的結構體數組,但是現在只用了5個長度,如何只輸出這5個有效長度的信息? */
查看完整描述

4 回答

已采納
?
MinRam

TA貢獻87條經驗 獲得超24個贊

#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);
}


查看完整回答
反對 回復 2017-03-21
?
MinRam

TA貢獻87條經驗 獲得超24個贊

想到的一種解決方案。

再建立個結構體,(unsigned int length // 存有效長度

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?struct xxx ?data[10];)

查看完整回答
1 反對 回復 2017-03-21
?
Xyino_Snake

TA貢獻31條經驗 獲得超22個贊

你所說的話有歧義。我按兩個意思分別回答你。 1.用帶長度的指針模板。 tpl<tpn type> stc hn_type { type * h; int n; //其他方法自己寫吧。 }; h是指針,n是長度。只需再接一個專門接口即可。 2.后面的就不用處理也就是了。
查看完整回答
反對 回復 2017-04-09
  • 4 回答
  • 1 關注
  • 1937 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號