#1656. c语言7.26 分析代码问题

c语言7.26 分析代码问题

当前没有测试数据。

问题描述

程序员面试题:利用函数分配存储字符串的内存,并在主程序中使用,请分析以下代码存在的问题是什么?

#include <stdio.h>
#include <stdlib.h>
int main(){
	int size = 10,i;
	int new_size;
	//利用malloc函数申请存储10个整数的内存空间
	int *p = (int*) malloc(size * sizeof(int));
	if (p == NULL) 	{
		printf("内存分配失败.");
		return 1;
	}
	for (i = 0; i < size; i++)
		p[i] = i;//初始化元素为0~9
	for (i = 0; i < size; i++) 
		printf("%d ", p[i]);//打印动态数组p
	new_size = 20;
	/*利用realloc函数扩大动态数组p的容量,使其可以存储20个整数*/
	p = (int*) realloc(p, new_size * sizeof(int));
/*申请到新内存后将复制原内存数据到新内存中*/
	if (p == NULL) 	{
		printf("内存分配失败.");
		return 1;
	}
	for (i = size; i < new_size; i++)
		p[i] = i;//初始后面10个新元素为10~19
	for (i = 0; i < new_size; i++)
		printf("%d ", p[i]);//显示所有元素
	free(p);//释放该20个整数的内存空间给系统
	p = NULL;//使指针p不指向任何内存,避免野指针
}

格式

输入

输出

样例



提示

数据范围、额外说明、样例说明等等