读书人

结构体声明后为什么初始化总是出错呢?

发布时间: 2012-04-13 13:50:24 作者: rapoo

结构体声明后为什么初始化总是出错呢?求大神解答
#include "stdafx.h"
#include "list.h"
#include <stdlib.h>


struct Node{
int c;
int e;
Node* next;
};

Node *head;

void InitList(){
*head={0,0,NULL};


int _tmain(int argc, _TCHAR* argv[])
{

InitList();
return 0;
}
///////////////////////////////////////////////////
以上代码编译时总是报错:
error C2059: 语法错误 : “{”
error C2143: 语法错误 : 缺少“;”(在“{”的前面)
error C2143: 语法错误 : 缺少“;”(在“}”的前面)

如果我将InitList()方法中代码改成:
Node* head={0,0,NULL};
就没有错误了,百思不得其解,求大神解答~

[解决办法]
我也遇到过类似的问题
[解决办法]
struct Node *head;
[解决办法]
如果lz想使用Node来定义结构体类型,应该在你定义结构体是使用typedef关键字
[解决办法]

C/C++ code
#include <stdio.h>struct Node{    int c;    int e;struct Node* next;};//Node *head;//这个是指针,后面怎么能给它赋值一个node值呢。它只是存储地址struct Node head = {0, 0, NULL};//初始化时才能整体赋值void InitList(){        //head = {0, 0, NULL};不能这样做,要单个玩    head.c = 10;    head.e = 100;    head.next = NULL;}int main(){                 InitList();        return 0;}
[解决办法]
都没申请内存···
[解决办法]
探讨

都没申请内存···

[解决办法]
Node *head;

void InitList(){
*head={0,0,NULL};

这里有问题, 应该

Node head;

void InitList(){
head={0,0,NULL};

[解决办法]
#include "stdafx.h"
#include "list.h"
#include <stdlib.h>


typedef struct Node
{
int c;
int e;
Node* next;
}node;

node *head;

void InitList()
{
head=NULL;
}


int _tmain(int argc, _TCHAR* argv[])
{
InitList();
return 0;
}

运行通过

读书人网 >C++

热点推荐