首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于函数传递野指针的有关问题

2012-03-17 
关于函数传递野指针的问题C/C++ code#include stdio.h#include stdlib.h#define LEN 13//数组长度type

关于函数传递野指针的问题

C/C++ code
#include <stdio.h>#include <stdlib.h>#define LEN 13   //数组长度typedef struct date{    int num;    struct date *next;}DATE;DATE *Create(DATE *head);void Game( int* a );void main(){    int a[LEN],i;        Game(a);        for ( i=0; i<LEN; i++)    {        printf("%d  ",a[i]);    }    printf("\n");}void Game( int* a ){    DATE *head,*tail,*p1,*p2;    int i=1;    head = (DATE*)malloc(sizeof(DATE)); //我如果这里没有对head分配内存,就用函数传递指针的话执行时出现内存问题    if ( head == NULL )    {        printf("分配内存失败\n");        exit(1);    }    tail = Create(head);        p1 = head;        while ( p1->next != NULL )    {        p2 = p1->next;        a[p2->num] = i++;        tail->next = p1;        tail = p1;        tail->next = NULL;        p1 = p2->next;        free(p2);            }    a[p1->num] = i;    free(p1);}DATE *Create(DATE *head){    DATE *p1,*p2;    int i=0;         //在这里给head分配内存不行    p1 = head;    while ( i < LEN )    {        p1->num = i++;        p2 = p1;        p1 = (DATE*)malloc(sizeof(DATE));        if( p1 == NULL )        {            printf("分配内存失败\n");            exit(1);        }        p2->next = p1;    }    free(p1); //最后分配的一个节点实际上没有用到;    p2->next = NULL;        return p2;//返回的是指向最后的那个节点}


[解决办法]
哪有给一个形参分配内存的,寒
[解决办法]
老大,你要干嘛?这个程序不存在你说的问题吧?
[解决办法]
不解! 没有这样使用过。
[解决办法]
VS2010上面运行的结果为:
7 1 12 2 8 3 11 4 9 5 13 6 10
好像没有楼主要说的问题,不知道你要什么效果?

热点排行