?/*
比如定義了一個長度為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 關注
- 1952 瀏覽
添加回答
舉報
0/150
提交
取消
