Masalah malloc dalam senarai terpaut c++
習慣沉默
習慣沉默 2017-06-14 10:51:40
0
1
787

Saya mentakrifkan struktur seperti berikut:

typedef struct CommandNode {
    int type;
    vector<string> command;
    CommandNode *next;
} CommandList,*CommandListNodes;

Terdapat vektor dalam struktur ini, dan sekarang saya mahu menggunakannya sebagai senarai terpaut Saya tidak pasti cara untuk memallokkan vektor.

Saya pernah malloc 1000 secara rawak, dan kadangkala masalah berikut akan berlaku:

malloc: *** error for object 0xffbbe8909090ffff: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug

Selain itu, saya tidak tahu sama ada saya boleh menggunakannya dengan cara ini:

    CommandListNodes listNodes = new CommandList;
    CommandListNodes p = listNodes;
    
    p->command.push_back("121212");
    
    p->type=100;
    p->next=new CommandList;
    
    p = p->next;
    
    p->command.push_back("343434");
    
    p->type=200;
    p->next=new CommandList;
    
    p = p->next;

Dan apakah perbezaannya dengan malloc pada masa ini, pemahaman saya tentang bahagian pengetahuan ini agak mengelirukan. Saya tidak menemui sebarang kandungan yang sesuai dalam talian.

習慣沉默
習慣沉默

membalas semua(1)
typecho

Sentiasa ingat bahawa peruntukan memori dinamik dalam C++ adalah berkaitan dengan penunjuk Contohnya, untuk mengakses kandungan yang ditunjukkan oleh penunjuk int, memorinya mesti diperuntukkan. Ini bermakna jika penunjuk tidak dimulakan menggunakan & (alamat) atau tugasan, maka ia mesti dimulakan menggunakan kaedah peruntukan memori dinamik seperti baru atau malloc untuk memastikan bahawa memori yang ditunjuk oleh penuding wujud. Untuk vektor, anda boleh menggunakan nama vektor<T> untuk mengisytiharkan vektor, atau anda boleh menggunakan vektor<T>

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!