#include <stdio.h>
#include <malloc.h>
int main(void)
{
int a[5];//占用了20个字节,每四个字节被当成了一个int变量
int len;
int * pArr;
int i;
printf("请输入元素个数:");
scanf("%d", &len);
//构造动态一维数组
pArr = (int *)malloc(4 * len);//pArr是数组名,int *是数组类型 malloc()是数组长度
//对动态一维数组进行操作,如:赋值....
for (i=0; i<len; ++i)
scanf("%d", &pArr[i]);
//对动态一维数组进行输出
printf("动态一维数组的内容为:\n");
for (i=0; i<len; ++i)
printf("%d\n", pArr[i]);
printf("每个元素的大小为%d\n", sizeof(*pArr));//输出了第一个动态变量的大小
free(pArr);
printf("%d\n", pArr[0]);
printf("%d\n", pArr[1]);
printf("%d\n", pArr[2]);
printf("%d\n", pArr[3]);
这是我学习c语言中动态内存时候的一个问题,就是在free(pArr)之后,我输出的数组元素为什么会有不是乱码的值、
这下边使我测试的输出结果:为什么会有不适乱码的输出呢,释放了内存不是应该清空数据了么,
请输入元素个数:10
0 1 2 3 4 5 6 7 8 9
动态一维数组的内容为:
0
1
2
3
4
5
6
7
8
9
每个元素的大小为4
12517712
0
12517712
0
4
5
6
7
8
9
-1962934133
--------------------------------
Process exited after 8.157 seconds with return value 0
请按任意键继续. . .
各路大神能帮我解答,学生党一枚,自学c可能有点不太容易,希望大神帮忙解决