찾다

 >  Q&A  >  본문

c++ - vs2008调试出错, 结构体变量使用前未初始化.

巴扎黑巴扎黑2807일 전723

모든 응답(2)나는 대답할 것이다

  • 迷茫

    迷茫2017-04-17 14:53:35

    指针使用之前一定要初始化

    int main() {
        ArrayListPtr list;
        Init(list);
        /*
        //两种改法
        ArrayList list;
        Init(&list) // 以下的操作都不是指针,访问成员要改为`.`
        
        //或者
        ArrayListPtr list = (ArrayListPtr)malloc(sizeof(ArrayList));
        Init(list);
        */
        
        printf("length: %d\n", list->length);
        printf("size: %d\n", list->size);
        return 0;
    }

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-17 14:53:35

    第一个list是一个脏指针,没有赋nullptr,也没有指向任何合法的内存;
    第二个list是一个合法的ArrayList地址;

    회신하다
    0
  • 취소회신하다