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>
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>
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!