C语言 malloc 申请动态内存

1. 完整示例代码:

#include <stdio.h>
#include <stdlib.h>  // 使用 malloc 和 free 函数


// malloc 申请动态内存!

// 1. 静态内存分配
void static_memory_allocation() {
    char name[32];
    printf("Enter your name: ");

    // scanf("%s", &name);   &name 明确指定存放的位置是  地址!
    // scanf("%s", name);    name  编译器会自动,存放到第一个元素的地址上。
    scanf("%s", &name); 
    printf("Hi, %s!\n\n", name);
}


// 2. 动态内存分配
void dynamic_memory_allocation() {
    char *name2;

    // name2 = (char*)malloc(32); // 申请 32 字节的内存
    // name2 = malloc(32);           // 申请 32 字节的内存. 此时的 name2 是一个指针
    name2 = malloc(32);           // 申请 32 字节的内存. 此时的 name2 是一个指针
    printf("Give your new name: ");


    scanf("%s", name2);   //  &name2 是指针的地址! 这里直接用指针!
    printf("Hey, %s!\n\n", name2);

    // 使用了 malloc 申请的内存,必须使用 free 释放内存
    free(name2);    
}


int main() {
    static_memory_allocation();

    dynamic_memory_allocation();
    return 0;
}

2. 几个问题记录一下:

1. scanf("%s", &name); 与 scanf("%s", name) 的区别? 加不加 “&” 符号?

  • scanf("%s", &name);   &name 明确指定存放的位置是  地址!
  • scanf("%s", name);    name  编译器会自动,存放到第一个元素的地址上。

2. name2 = (char*)malloc(32);  与 name2 = malloc(32); 的区别

 

相关推荐

  1. c++ new 和 malloc 分配

    2024-07-11 12:38:02       19 阅读
  2. C++动态

    2024-07-11 12:38:02       40 阅读
  3. c++ 动态分配

    2024-07-11 12:38:02       25 阅读
  4. C语言共享

    2024-07-11 12:38:02       15 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 12:38:02       7 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 12:38:02       8 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 12:38:02       7 阅读
  4. Python语言-面向对象

    2024-07-11 12:38:02       10 阅读

热门阅读

  1. Spring AOP 基础知识

    2024-07-11 12:38:02       10 阅读
  2. PHP MySQL 简介

    2024-07-11 12:38:02       12 阅读
  3. linux 文件末尾追加内容

    2024-07-11 12:38:02       10 阅读
  4. 从IE到Edge:微软浏览器的演变与未来展望

    2024-07-11 12:38:02       9 阅读
  5. 浅谈ES6

    2024-07-11 12:38:02       10 阅读
  6. 风景园林工程设计乙级资质业绩要求案例分析

    2024-07-11 12:38:02       12 阅读
  7. 高效利用iCloud:全面指南与技术深度解析

    2024-07-11 12:38:02       8 阅读
  8. Linux 宝塔常用命令教程

    2024-07-11 12:38:02       8 阅读
  9. HDFS体系架构&文件写入/下载流程

    2024-07-11 12:38:02       10 阅读
  10. 企业微信群发限制的背后逻辑,一文读懂!

    2024-07-11 12:38:02       9 阅读
  11. Stable Diffusion与AI艺术:探索人工智能的创造力

    2024-07-11 12:38:02       10 阅读