?/*
比如定義了一個長度為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); }

MinRam
TA貢獻87條經驗 獲得超24個贊
想到的一種解決方案。
再建立個結構體,(unsigned int length // 存有效長度
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?struct xxx ?data[10];)

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