C語(yǔ)言int數(shù)組的動(dòng)態(tài)分配與釋放

小樊
88
2024-08-27 03:13:15

在C語(yǔ)言中,動(dòng)態(tài)分配內(nèi)存可以使用malloccallocrealloc等函數(shù)。這些函數(shù)都是在stdlib.h頭文件中定義的。下面是一個(gè)關(guān)于如何動(dòng)態(tài)分配和釋放int數(shù)組的示例:

#include<stdio.h>
#include <stdlib.h>

int main() {
    int n, i;
    int *arr;

    printf("請(qǐng)輸入數(shù)組長(zhǎng)度: ");
    scanf("%d", &n);

    // 使用 malloc 動(dòng)態(tài)分配內(nèi)存
    arr = (int *)malloc(n * sizeof(int));
    if (arr == NULL) {
        printf("內(nèi)存分配失??!\n");
        return -1;
    }

    printf("請(qǐng)輸入%d個(gè)整數(shù):\n", n);
    for (i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }

    printf("輸入的整數(shù)為:\n");
    for (i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    // 釋放動(dòng)態(tài)分配的內(nèi)存
    free(arr);

    return 0;
}

在這個(gè)示例中,我們首先使用malloc函數(shù)動(dòng)態(tài)分配了一個(gè)int類型的數(shù)組。數(shù)組的大小由用戶輸入的n決定。然后,我們使用scanf函數(shù)獲取用戶輸入的n個(gè)整數(shù),并將它們存儲(chǔ)在動(dòng)態(tài)分配的數(shù)組中。最后,我們使用free函數(shù)釋放了動(dòng)態(tài)分配的內(nèi)存。

注意:在使用動(dòng)態(tài)分配的內(nèi)存時(shí),務(wù)必確保在不再需要時(shí)正確地釋放內(nèi)存,以避免內(nèi)存泄漏。

0