|
5鱼币
本帖最后由 O_o渐渐沉淀 于 2012-5-30 11:38 编辑
- /*有几个个问题不解,不解之处,用注释标在代码只好,还请前辈们指点迷津,(越详细越好),谢谢了!*/
- #include<stdio.h>
- #include<malloc.h>
- int* Max(int *Array, int Total)
- {
- int i;
- int *Max = Array;
- for(i = 0; i < Total; i++)
- {
- if(*Max < *Array)
- {
- Max = Array;
- }
- Array++;
- }
- return (Max); /*1.指针Max, Array需要用free()释放吗,此时Max作为函数的返回值又该在哪释放?*/
- }
- int main()
- {
- int Size;
- int *Head;
- int i;
- int *MaxAd;
- scanf("%d", &Size);
- Head = (int*)malloc(Size);/* 2.如果将Head指针赋值给其他的(int*),如后有:int *test = Head; 那么指针test需要用free()函数释放吗? */
- {
- if(NULL == Head)
- {
- printf("Fail to allocate memory!\n");
- return 1;
- }
- }
- for(i = 0; i < Size; i++)
- {
- scanf("%d", &Head[i]);
- }
- MaxAd = Max(Head, Size);
- printf("The Max = %d\n", *MaxAd);
- free(Head); /* 3.当将此行代码注释掉时,程序不再报错,不知问题在何处 */
- Head = NULL;
- return 0;
- }
复制代码
|
|