[Pointers and C-String]D. Liang 7.3 Increasing array size

Description

7.3 Increasing array size
Once an array is created, its size is fixed. Occasionally, you need to add more values to an array, but the array is full. In this case, you may create a new larger array to replace the existing array. Write a function with the following header:

int * doubleCapacity(int *list, int size)

The function create a new array that dobules the size of the parameter list, and copy the values in the list to the new array, the remaining value should to zero.

For example, the following codes outputs: 1 2 3 4 5 0 0 0 0 0

int list[5]={1,2,3,4,5};
int *newlist = doubleCapacity(list,5);
for(int i=0;i<2*5;i++)
  printf("%d ", *(newlist+i));

Hint

Don’t submit the main() function.

//   Date:2020/5/1
//   Author:xiezhg5
int * doubleCapacity(int *list, int size) {
	int i,*p;
	//分配新数组大小(原来的2倍) 
	p=(int*)malloc(2*size*sizeof(int));
	for(i=0; i<2*size; i++) {
		if(i<size)
			p[i]=list[i];
		else
			p[i]=0;
	}
	return p;
}

你可能感兴趣的:(Matrix)