Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mensimulasikan Tatasusunan Bergerigi dalam C dan C?

Bagaimana untuk Mensimulasikan Tatasusunan Bergerigi dalam C dan C?

DDD
Lepaskan: 2024-11-06 04:54:02
asal
666 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!

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