69,371
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAXSIZE 1000
void Trans(const int *arry, int NUM, int **p)
{
int i, num = NUM;
*p = (int *)malloc(sizeof(int)*NUM);
if(!(*p))
{
perror("malloc fail");
return;
}
for(i=0; i<NUM; i++)
{
(*p)[i] = arry[--num]; /*注意改成(*p)[i], *p是一个整体,需要加括号,否则会p和[]先结合*/
}
}
int main()
{
int NUM, i;
int *p = NULL;
int arry[MAXSIZE];
bzero(&arry, sizeof(arry));
printf("please input NUM(1·1000):\n");
scanf("%d", &NUM);
printf("please input all:\n");
for(i=0; i<NUM; i++)
{
scanf("%d", &arry[i]);
}
Trans(arry, NUM, &p);
for(i=0; i<NUM; i++)
{
printf("arry[%d] = %d\n", i, p[i]);
}
printf("\n");
free(p);
p = NULL;
return 0;
}
参考一下吧
给(*p)赋值时需要注意下