?/*
比如定義了一個(gè)長度為10的結(jié)構(gòu)體數(shù)組,但是現(xiàn)在只用了5個(gè)長度,如何只輸出這5個(gè)有效長度的信息?
*/
4 回答
已采納

MinRam
TA貢獻(xiàn)87條經(jīng)驗(yàn) 獲得超24個(gè)贊
#include<stdio.h> #include<malloc.h> typedef?struct?{ int?useLen;????//?有效長度 int?*data;?????//?實(shí)際數(shù)據(jù) int?allLen;????//?實(shí)際容量 }StruTest; #define?ALL_LEN?10 int?main(void)?{ int?len; StruTest?*?tmp?=?(StruTest?*)malloc(sizeof(StruTest));?//?申請一個(gè)結(jié)構(gòu)體 printf("有效長度:"); scanf("%d",?&len); tmp->allLen?=?ALL_LEN; tmp->useLen?=?len; tmp->data?=?(int?*)malloc(ALL_LEN*sizeof(int)); printf("輸入數(shù)組"); for?(int?i?=?0;?i?<?tmp->useLen;?++i)?{ scanf("%d",?&tmp->data[i]); } printf("該結(jié)構(gòu)體的內(nèi)容如下:"); for?(int?i?=?0;?i?<?tmp->useLen;?++i)?{ printf("%d?",?tmp->data[i]); } free(tmp->data); free(tmp); }

MinRam
TA貢獻(xiàn)87條經(jīng)驗(yàn) 獲得超24個(gè)贊
想到的一種解決方案。
再建立個(gè)結(jié)構(gòu)體,(unsigned int length // 存有效長度
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?struct xxx ?data[10];)

Xyino_Snake
TA貢獻(xiàn)31條經(jīng)驗(yàn) 獲得超22個(gè)贊
你所說的話有歧義。我按兩個(gè)意思分別回答你。
1.用帶長度的指針模板。
tpl<tpn type>
stc hn_type
{
type * h;
int n;
//其他方法自己寫吧。
};
h是指針,n是長度。只需再接一個(gè)專門接口即可。
2.后面的就不用處理也就是了。
- 4 回答
- 1 關(guān)注
- 1930 瀏覽
添加回答
舉報(bào)
0/150
提交
取消