English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C 语言基础教程

C 语言流程控制

Funzione del linguaggio C

Array del linguaggio C

Puntatore del linguaggio C

Stringa del linguaggio C

C 语言结构体

C 语言文件

C 其他

C 语言参考手册

C程序结构体动态内存分配

Manuale completo di programmazione C

在此示例中,您将学习存储用户使用动态内存分配输入的信息。

要理解此示例,您应该了解以下C语言编程主题:

此程序要求用户存储noOfRecords的值,并使用malloc()函数动态地为noOfRecords结构变量分配内存。

演示结构的动态内存分配

#include <stdio.h>
#include <stdlib.h>
struct course {
    int marks;
    char subject[30];
};
int main() {
    struct course *ptr;
    int i, noOfRecords;
    printf("输入记录数: \n");
    scanf("%d", &noOfRecords);
    //noOfRecords结构的内存分配
    ptr = (struct course *)malloc(noOfRecords * sizeof(struct course));
    for (i = 0; i < noOfRecords; ++i) {
        printf("分别输入主题和标记的名称:\n");
        scanf("%s %d", (ptr + i)->subject, &(ptr + i)->marks);
    }
    printf("显示信息:\n");
    for (i = 0; i < noOfRecords; ++i)
        printf("%s\t%d\n", (ptr + i)->subject, (ptr + i)->marks);
    return 0;
}

Risultato di output

Inserisci il numero di record: 2
Inserisci il nome del tema e del tag:
Programming
22
Inserisci il nome del tema e del tag:
Struttura
33
Mostra informazioni:
Programming      22
Struttura        33

Manuale completo di programmazione C