题解 | #打印从1到最大的n位数#

打印从1到最大的n位数

https://www.nowcoder.com/practice/4436c93e568c48f6b28ff436173b997f

先上自己的思路的答案

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param n int整型 最大位数
 * @return int整型一维数组
 * @return int* returnSize 返回数组行数
 */
int* printNumbers(int n, int* returnSize ) {
    
    int* pi=(int*)malloc(101000*sizeof(int));
    int* pr=pi;
    int m=9;
    for(int a=n;a>1;a--){
        m=m*10+9;
    }

*returnSize=m; 
     for(int a=1;a<=m;a++,pr++){
        *pr=a;
    }

     return pi;//这个是在栈上开辟的空间,随着函数栈帧的销毁而释放,一定要malloc
     
}

这是第一次自己写的,会出现如下错误:

因为是在函数内部创建的数组,出函数后:由于是在stack上建立的空间,出栈后会被释放。至于释放空间后是否修改空间内的数据,则取决于编译器。此处则没有释放pi指向的空间,所以后面的内容能正常打印(因为有returnSize这个参数作保证,否则这些内存就被占用但是不再能找到了,内存就被吃掉了)。

不过这样的写法任然不够干练,既然我们都求出了m,直接使用malloc开辟m个大小的空间更能体现动态内存规划的作用。

全部评论

相关推荐

下个早班:秒挂就是不缺人
点赞 评论 收藏
分享
Twilight_m...:表格简历有点难绷。说说个人看法: 1.个人基本情况里好多无意义信息,什么婚姻状况、健康状况、兴趣爱好、户口所在地、身份证号码、邮政编码,不知道的以为你填什么申请表呢。 2.校内实践个人认为对找工作几乎没帮助,建议换成和测开有关的项目,实在没得写留着也行。 3.工作经历完全看不出来是干什么的,起码看着和计算机没啥关系,建议加强描述,写点你在工作期间的实际产出、解决了什么问题。 4.个人简述大而空,看着像AI生成,感觉问题最大。“Python,C,C++成为我打造高效稳定服务的得力工具”、“我渴望凭借自身技术知识与创新能力,推动人工智能技术的应用发展,助力社会实现智能化转型”有种小学作文的美感。而且你确定你个人简述里写的你都会嘛?你AI这块写的什么“深入研究”,发几篇顶会的硕博生都不一定敢这么写。而且你AI这块的能力和软测也完全无关啊。个人简述建议写你对哪些技术栈、哪些语言、哪些生产工具的掌握,写的有条理些,而且最好是和测开强相关的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务