当我尝试初始化指针时,为什么我的程序会崩溃?

时间:2017-10-25 17:09:10

标签: c

所以我的程序运行numElements方法而不是崩溃,我是否声明我的变量错误或我的指针变量是错误的?

Header.h

typedef struct Node {
int number;
struct Node *pNext;
}Node;

Other.h

void LinkedList(Node *pNode){

int i,j,c,numElem;
time_t t;
srand((unsigned) time(&t));
numElem = numElements();
pNode[numElem];

for(i = 0; i < numElem; i++){

    pNode[i].number = (rand() % (MAX - MIN)) + MIN;
    //c = (rand() % (MAX - MIN)) + MIN;
    printf("P is %d\n",pNode[i].number);
    printf("C = %d",c);

   }
}

Main.c

Node *pNode;
LinkedList(pNode);

2 个答案:

答案 0 :(得分:1)

我需要这个pNode = malloc(numElem * sizeof(Node));

答案 1 :(得分:-1)

你需要为pNode分配内存,对于你的情况(可能是C语言),

pNode = (Node *)malloc( numElem * sizeof(Node) );

严格的C不需要强制转换,但对于C ++,它是。