【牛客 题库】 malloc 函数和 scanf函数
来源:互联网 发布:mac屏幕共享连接失败 编辑:程序博客网 时间:2024/05/12 10:34
1.若有 int *p=(int *)malloc(sizeof(int));则向内存申请到内存空间存入整数123的语句为()。
scanf("%d",p);
scanf("%d",&p);
scanf("%d",*p);
scanf("%d",**p);
首先看一下malloc函数:
一、原型:extern void *malloc(unsigned int num_bytes);
头文件:#include <malloc.h>
功能:分配长度为num_bytes字节的内存块
说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
当内存不再使用时,应使用free()函数将内存块释放。
这里要注意malloc的返回值:void*类型,也就是说可以是任何类型的指针,所以要强制转换一下,不然编译会出错。
返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针。看下面代码:
#include <iostream>#include <stdio.h>#include <malloc.h>using namespace std;int main(){//第一种形式char *p;p = (char *)malloc(100);//第二种形式,是等价的char *q = (char *)malloc(sizeof(char));if (p)printf("Memory Allocated at: %x/n", p);elseprintf("Not Enough Memory!/n");free(p);free(q);return 0;}
scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。
其调用格式为: scanf("<格式化字符串>",<地址表>);
int main(){int a, b, c;scanf("%d%d%d", &a, &b, &c);//输入的时候,不同变量之间要有空格printf("%d,%d,%d/n", a, b, c);scanf("%d", &a);printf("%d", a);return 0;}
要注意的是:
(1)&a、&b、&c中的&是地址运算符,分别获得这三个变量的内存地址。
(2) "%d%d%d"是按十进值格式输入三个数值。输入时,在两个数据之间可以用一个或多个空格、tab键、回车键分隔。
sacnf()中的变量必须使用地址。
int a, b;
scanf("%d%d",a,b); //错误
scanf("%d%d",&a,&b);
scanf("%d%d",&a,&b);
阅读全文
0 0
- 【牛客 题库】 malloc 函数和 scanf函数
- 【牛客 题库】 gets()和scanf()函数的区别 || 智能指针auto_ptr
- malloc、free、printf、scanf函数原型
- 【牛客 题库】 内联函数
- gets() 和scanf()函数
- printf和scanf函数
- printf和scanf函数
- scanf和printf函数
- scanf函数和printf函数
- printf函数和scanf函数
- scanf()函数和gets()函数
- printf( )函数和scanf( )函数
- malloc函数和void *
- 函数malloc()和calloc()
- malloc函数和new
- calloc()函数和malloc()函数
- malloc()函数和callloc()函数
- malloc函数和free函数
- MyArrayList——自己实现ArrayList
- 业务开发中动态导出报表的一些思路
- 使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析
- HDU OJ 2054 A == B ?
- Docker系列之(五):使用Docker Compose编排容器
- 【牛客 题库】 malloc 函数和 scanf函数
- leetcode 122. Best Time to Buy and Sell Stock II 最大子段和 + DP
- AS无线真机调试
- 11、halcon定位学习(3)---NCC匹配
- Java语法----Java中equals和==的区别
- 朴素贝叶斯
- Some projects cannot be imported because they already ex
- Isolation Forest 孤立森林
- Spark 贝叶斯分类算法