輸入3個學員的姓名,動態分配內存保存學員姓名,並在最後輸出

<span style="font-family:Arial;font-size:32px;"><strong>char tempstr[20] = {0};  //定義字符數組接收字符串
    char *names[3] = {0};  //存儲堆區地址
    for (int i = 0; i < 3; i++) {
        printf("請輸入學員姓名:\n");
        scanf("%s",tempstr);  //輸入字符串
        names[i] = malloc(strlen(tempstr) + 1);//根據字符串大小動態分配內存,將地址存儲在對應的指針數組元素中.
        strcpy(names[i], tempstr); //將臨時數組中的數據拷貝到對應的堆區空間上
        }
    for (int i = 0; i < 3; i++) {
        printf("%s\n",names[i]);//打印堆區字符串
        free(names[i]);  //將堆區空間釋放
        names[i] = NULL;
    }
</strong></span>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章