Bagaimana untuk Mensimulasikan Tatasusunan Bergerigi dalam C dan C?

DDD
Lepaskan: 2024-11-06 04:54:02
asal
482 orang telah melayarinya

How to Simulate Jagged Arrays in C and C  ?

Tatasusunan Bergerigi dalam C dan C

Seseorang mungkin menjumpai istilah "tatasusunan bergerigi" dalam perbincangan tentang bahasa pengaturcaraan. Walau bagaimanapun, konsep ini sememangnya tidak disokong dalam C atau C . Tatasusunan bergerigi merujuk kepada tatasusunan yang setiap elemen boleh menjadi tatasusunan panjang yang berbeza-beza.

Dalam contoh kod yang diberikan, percubaan dibuat untuk mengisytiharkan tatasusunan bergerigi menggunakan sintaks berikut:

<code class="c">int jagged[][] = { {0,1}, {1,2,3} };</code>
Salin selepas log masuk

Walau bagaimanapun, C melemparkan ralat semasa menyusun, menunjukkan bahawa semua dimensi kecuali yang pertama mesti mempunyai had yang ditentukan. Ini kerana C memerlukan tatasusunan mempunyai saiz tetap pada masa penyusunan.

Untuk mensimulasikan tatasusunan bergerigi dalam C/C , pendekatan yang biasa digunakan ialah menggunakan tatasusunan penunjuk. Setiap penuding dalam tatasusunan ini menghala ke blok memori yang diperuntukkan secara dinamik di mana unsur tatasusunan bergerigi boleh disimpan.

Contoh dalam C:

<code class="c">#include <stdlib.h>

int main() {
    // Initialize array of pointers
    int *jagged[5];

    // Allocate memory for each pointer and set array values
    jagged[0] = malloc(sizeof(int) * 2);
    *(jagged[0]) = 0;
    *(jagged[0] + 1) = 1;

    jagged[1] = malloc(sizeof(int) * 3);
    *(jagged[1]) = 1;
    *(jagged[1] + 1) = 2;
    *(jagged[1] + 2) = 3;

    // Use the jagged array
    // ...

    // Deallocate memory
    free(jagged[0]);
    free(jagged[1]);

    return 0;
}</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mensimulasikan Tatasusunan Bergerigi dalam C dan C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
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!