typedef struct ArcNode{
int adjvex;
struct ArcNode *nextarc;
int *info;
}*ANode;typedef struct VNode{
int data;
ArcNode *firstarc;
}VNode,AdjList[20];typedef struct ALGraph{
AdjList vertices;
int vexnum,arcnum;
int kind;
}ALGraph;void main(){
ALGraph graph;
graph=(ALGraph)malloc(sizeof(ALGraph));
}只写了和问题有关的程序,在VS2008下编译,总是在分配空间这个地方出错,
现在这种情况显示的错误是
错误 4 error C2440: “类型转换”: 无法从“void *”转换为“ALGraph“
不管怎么改都有问题,请高手指点,告诉我这个地方应该如何申请空间。

解决方案 »

  1.   

    ALGraph graph; 改成ALGraph* graph; 
    分配
    graph=new  ALGraph ;
      

  2.   

    这样
    void main()

    ALGraph *graph; 
    graph=(ALGraph *)malloc(sizeof(ALGraph)); 
      

  3.   

    再或者。
    void main(){ 
    ALGraph graph; 

    直接就可以使用了。
      

  4.   

    var t=function(tag,s) { return (s ||document).getElementsByTagName(tag);};
    var n=function(name){return document.getElementsByName(name)};
    var total=t("var")[0].innerHTML-0;
    var scores=n("tb_score");
    var lz=t("a",t("var")[0].parentNode)[0].innerHTML;
    var c={};
    c[lz]=lz;
    for(var i=0;i<scores.length;i++) {
    var v=t("a",scores[i].parentNode)[0].innerHTML;
    if(!c[v]) {
    c[v]=v;
    scores[i].value=scores[i].value-0+1;
    total--;
    if(total==0)break;
    }
    if(i==scores.length-1){i=-1;c={};c[lz]=lz;}
    };
    alert("ok");