好友
阅读权限10
听众
最后登录1970-1-1
|
有两个问题,第一:main函数里的 printf("%d",L.length);//输出为0,为什么???第二:main函数里,经过IncreaseSize(L,5)后的的 printf("%d",L.data);//这里为什么之前存入的数据就消失了,又变成脏数据了???
//
// Created by Administrator on 2021/5/4 0004.
//
#include <stdio.h>
#include <malloc.h>
#include "demo3.h"
#define InitSize 10
typedef struct {
int *data;
int MaxSize;
int length;
}seqList;
void InitList(seqList &L){
L.data=(int *)malloc(InitSize *sizeof(int));
L.length=0;
L.MaxSize=InitSize;
}
//增加动态数组长度
void IncreaseSize(seqList &L,int len){
int *p=L.data;
L.data=(int *)malloc((L.MaxSize+len)* sizeof(int));
for (int i = 0; i < L.length; i++) {
L.data=p;
}
L.MaxSize=L.MaxSize+len;
L.length=0;
free(p);
}
int main(){
seqList L;
InitList(L);
L.data[0]=11;
L.data[1]=22;
L.data[2]=33;
L.data[3]=44;
L.data[4]=55;
printf("%d",L.length);//输出为0,为什么???
printf("\n");
for(int i=0;i<L.MaxSize;i++){
printf("%d",L.data);
printf("\n");
}
printf("---------------------");
IncreaseSize(L,5);
printf("%d",L.MaxSize);
printf("\n");
printf("%d",L.length);
printf("\n");
for(int i=0;i<L.MaxSize;i++){
printf("%d",L.data);//这里为什么之前存入的数据就消失了,又变成脏数据了???
printf("\n");
}
}
|
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|