首页 > 其他分享 >DAY6

DAY6

时间:2023-07-28 15:55:41浏览次数:45  
标签:What DAY6 char int 内存 数组 bet

指针练习

  1. 声明变量:pstr是一个指向数组的指针,该数组内含20个char类型的值

 char (*pstr)[20];
  1. 编写一个函数,返回储存在int类型中数组中的最大值,并在一个简单的程序中测试该函数

#include <stdio.h>
int get_max(int number[],int n){
    int max = number[0];
    int i;
    for(i=0;i<n;i++){
        if(max<number[i]){
            max = number[i];
        }
    }
    return max;
}
int main(void){
    int source[100] = {1,2,3,4,5};
    printf("The largest number in array is %d",get_max(source,100));
    return 0;
    
}

输出结果:

The largest number in array is 5

内存泄漏

内存泄漏指的是我们动态申请了内存(heap),但是即使是使用完了之后也不去释放它

  1. 一个赌博游戏

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int cash = 100;//用来储存现金 
void play(int bet){
    char C[3] = {'J','Q','K'};
    printf("Shuffling ...");//正在洗牌 
    srand(time(NULL));//根据时间给出的随机数 
    int i;
    for(i = 0;i<5;i++){
        int x = rand() % 3;//用rand()生成一个随机数,随机数在0-3之间 
        int y = rand() % 3;
        int temp = C[x];
        C[x] = C[y];
        C[y] = temp;//交换这些位置上的字符 
        
    }//两个位置的字符进行了交换,执行五次,每次随机数选择两个位置x和y 
    int playersguess;
    printf("What's the position of queen - 1,2 or 3?"); 
    scanf("%d",&playersguess);
    if(C[playersguess-1] == 'Q'){
        cash += 3*bet;
        printf("You Win ! Result = \"%c %c %c\" Total Cash = %d\n",C[0],C[1],C[2],cash);
        
    }else{
        cash -=bet;
        printf("You Loose ! Result = \"%c %c %c\" Total Cash = %d\n",C[0],C[1],C[2],cash);
    }
}
​
int main(){
    int bet;
    printf("Welcome to the Vitrual Casino\n");
    printf("Total cash = $%d\n",cash);
    while(cash>0){
        printf("What's your bet? $");
        scanf("%d",&bet);
        if(bet == 0 || bet > cash){
            break;
        }
        play(bet);
        printf("\n****************************\n") ;
    }
} 
​

输出:

Welcome to the Vitrual Casino
Total cash = $100
What's your bet? $5
Shuffling ...What's the position of queen - 1,2 or 3?3
You Loose ! Result = "Q J K" Total Cash = 95
​
****************************
What's your bet? $

我们不论玩多少次,应用程序的内存的不会变(没有明显增长,因为储存在栈(stack)中,用一次就会清理一次

  1. 当把paly函数的局部变量也就是特定数组C[ ]在堆上分配内存

char *C = (char*)malloc(3*sizeof(char));
    C[0] = 'J'; C[1] = 'Q'; C[2] = 'K'; 

这样我们就在堆上创建了一个数组,C就是这个数组的基地址,C还是一个局部变量,但是现在它是一个字符指针

随着游戏次数多增加,应用程序的内存也不断增加

  1. 内存泄漏总是因为堆中未使用和未引用的内存块才发生的,栈上的内存是自动回收的,栈的大小是固定的,最多的就是发生栈溢出

标签:What,DAY6,char,int,内存,数组,bet
From: https://www.cnblogs.com/ninnne/p/17587827.html

相关文章

  • Day6_条件、成员运算符、身份运算符、if判断
    1.条件_第一类显示布尔值:2.条件_第二类隐式布尔值:3.not、and、or运算符:4.成员运算(not、and、or的运算优先级)和身份运算(is):5.if判断:语法1:6.if判断:语法2,if...else...7.if判断:语法3,if. ..elif...8.if判断:语法4,if:...elif:...else:.........
  • Day6_可变不可变类型
    1.可变类型和不可变类型_int是不可变类型:2.可变类型和不可变类型_float是不可变类型: 3.可变类型和不可变类型_str是不可变类型: 4.可变类型和不可变类型_list是可变类型: 11.可变类型和不可变类型_dict是可变类型: 12.可变类型和不可变类型_字典补充: 12.可变类型和......
  • week3 day6
    今天又回老家了继续当工具人 中间发生了一件小插曲:开车在等红绿灯 正当我要起步的时候 一个女孩初中生吧看手机骑电车左拐  被我撞到了 人没事蹭破皮了  吓死我了 !!!!!!!敲了一两个pta感觉要完不成了 现在我按着headfristjava 敲起来;......
  • 每日一练 | 华为认证真题练习Day69
    1、STP协议在以下哪个状态下进行端口角色的选举?A.BlockingB.DisabledC.LearningD.Listening2、RSTPBPDU报文中的Flag字段的总长度为多少bit?A.6B.4C.8D.23、以下哪项不是RSTP可以提高收敛速度的原因?A.边缘端口的引入B.取消了ForwardDelayC.根端口的快速切换D.P/A机制4......
  • 每日一练 | 华为认证真题练习Day67
    1、网络管理工作站通过SNMP协议管理网络设备,当被管理设备有异常发生时,网络管理工作站将会收到哪种SNMP报文?A.get-response报文B.trap报文C.set-request报文D.get-request报文2、路由器在转发IPv6报文时,不需要对数据链路层重新封装。A.对B.错3、在一个广播型网络中存在4台路由......
  • 每日一练 | 华为认证真题练习Day66
    1、PPP帧格式中的Protoco1字段为0xC023,表示该协议是?A.PAPB.LCPC.CHAPD.NCP2、ARG3系列路由器上ACL缺省步长为?A.15B.10C.5D.203、高级ACL的编号范围是?A.6000~6031B.4000~4999C.3000-3999D.2000-29994、IPSecVPN体系结构主要由以下哪些协议组成?(多选)A.GREB.ESPC.IKED......
  • 算法学习day60单调栈part03-84
    packageLeetCode.stackpart03;/***84.柱状图中最大的矩形**/publicclassLargestRectangleHistogram_84{publicintlargestRectangleArea(int[]heights){intlength=heights.length;int[]minLeftIndex=newint[length];int......
  • 小灰灰深度学习day6——线性代数
    importtorch#标量由只有一个元素的张量表示'''x=torch.tensor(3.0)y=torch.tensor(2.0)print(x+y)print(x*y)print(x/y)print(x**y)''''''向量可以被视为标量值组成的列表,这些标量值被称为向量的元素在数学上,具有一个轴的张量表示向量,一般张量具有任......
  • python day6
    第一阶段第六章6.1数据容器 6.2列表列表中元素类型不限,可以混合 ["itheima",888,True]1#列表里面嵌套列表2my_list=[[1,2,3],[4,5,6]]3print(my_list)4print(type(my_list))6.3列表遍历下标定义可以反向 #列表里面嵌套列表取数据my_......
  • 【安全学习之路】Day6
    ......