64,662
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<stdlib.h>
int * make_array(int elem,int val) //1.是不能返回局部变量的地址还是不能返回局部变量的指针?
{
int i;
int *array = (int*) malloc(elem * sizeof(int));//这里可以直接把指针名当数组名使用
if(NULL == array)
exit(1);
for (i = 0; i < elem; i++)
array[i] = val;
return array;//这里array虽然是是一个指针,这里返回的是其值而非返回其地址,即不能返回&array,
}//2.这里函数结束后array被销毁是否意味着&array这块内存不再存且没有东西指着maolloc这块内存?还意味着其他什么东西呢?
void show_array(const int ar[], int n)
{
int r = 0;
int i = 0;
for(; i < n; i++)
printf("%3d", ar[i]);
printf("\n");
}
int main(void)
{
int * pa;
int size;
int value;
printf("enter the number of elements: ");
scanf("%d", &size);
while (size > 0)//不断地建新数组,不断试验这个程序。
{
printf("enter the initialization value: ");
scanf("%d", &value);
pa = make_array (size,value);
if(pa)
{
show_array(pa,size);
free(pa);
}
printf("enter the number of elements (<1 to quit): ");
scanf("%d",&size);
}
return 0;
}