答:上面代码里的.问题在于函数gets()的使用,这个函数从stdin接收一个字符串而不检查它所复制的缓存的容积,这可能会导致缓存溢出。这里推荐使用标准函数fgets()代替。 3内存泄露 问:下面的代码会导致内存泄漏吗? #include void main(void) { char *ptr = (char*)malloc(10); if(NULL == ptr) { printf("...
第11题回答也有问题,对齐要看编译器是否默认允许,其次还有align指定对象对齐,另外编译器采用X86还是X64也有关系。 8月前·湖北 0 分享 回复 硬刚到底 ... 16题,sizeof (int*)的大小为什么是8个字节?int*指针类型应该是占4字节,它指向的int数据也是4字节,难不成你是把两个4字节加起来了算 ...
char *str = a; 以下代码有什么出错的地方 char* s="AAA"; printf("%s",s); s[0]='B'; printf("%s",s); 编译正确,运行错错误,“AAA”是字符串常量,s[0]试图修改字符串常量的指值,字符串常量不能修改。 以下代码有什么出错的地方 wap( int* p1,int* p2 ) { int * p; //(int)malloc(4...
面试题1:变量的声明和定义有什么区别 为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明,但是只在一个地方定义。加入extern修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分定义。说明:很多时候一个变量,只是声明不分配内存空间,直到具体使用时才初始化,分配内存...
当面试官问到C语言中的switch语句时,可以这样回答: switch语句是一种用于根据表达式的值选择不同执行路径的控制流语句。它可以使代码更加简洁和可读,并且可以根据不同的条件执行不同的代码块。 switch语句的工作原理如下: 执行表达式:首先,计算switch语句后面的表达式的值。 匹配case:将表达式的值与每个case标签进行比较...
c语言面试题目及最佳答案 1、描述一下gcc的编译过程? gcc编译过程分为4个阶段:预处理、编译、汇编、链接。 预处理:头文件包含、宏替换、条件编译、删除注释 编译:主要进行词法、语法、语义分析等,检查无误后将预处理好的文件编译成汇编文件。 汇编:将汇编文件转换成二进制目标文件 链接:将项目中的各个二进制文件...
A:对于现在的编译器这段代码是可以编译通过的,不过是会有警告,main()返回类型最好使用int类型, 当一个函数执行结束时最后返回一个状态值,现在C/C++返回一个0值表示程序正常退出,否则有异常. 4.内存泄露 Q:下面代码执行结果会出现内存泄露吗? 1#include<stdio.h>23voidmain(void)4{5char*ptr = (char*)mall...
c语言面试编程题 题目1:找出数组中出现次数最多的元素 题目描述: 给定一个整型数组,编写一个程序找到出现次数最多的元素,并返回该元素。 输入: 整型数组 输出: 出现次数最多的元素 示例: 输入:[1, 2, 3, 1, 2, 3, 4, 1, 2, 3] 输出:1 解题思路: 首先,我们可以使用一个哈希表来统计每个元素的...
面试常问的16个C语言问题 1.用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SEC_YEAR (365*24*60*60)UL 考察点: 1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒...