- 博客(6)
- 收藏
- 关注
原创 关于在C语言中二维数组在函数之间传导的问题(二维数组与二维指针的区别)
在函数头中 声明 int a[][N] 就是采用二维数组(静态分配)的方式访问 此时 访问arr[i][j] 访问的地方没有初始化 就造成输出随机数。对于问题二,函数传导的是一个二维数组,是连续的,访问a[1][1]其实是访问后面第四位存的数字 那一块内存没有初始化 自然是随机数。对于问题一,函数传导的是一个二维指针,是通过一维指针来访问确切的元素,而静态声明的数组没有存指针 是直接存数字 所以运行出错。动态分配的数组 arr[i][j] 先访问位于i的指针 再访问i指针指向的地址里面的第j号元素。
2023-10-13 04:46:31
78
原创 C语言 leetcode 398. 随机数索引
因为单独使用rand()函数产生的是伪随机数,所以我就加了srand函数每次生成的数字居然都是一样的 而且可以发现 如果你每次执行函数的时候将他印的也是有规律的 等于每次执行函数的时候 rand()函数生成的都是固定的。这里我犯了一个很愚蠢的错误,因为这个index数组是我malloc声明的,应该存放在堆区 而不是栈区 所造成的数组越界 当然是堆溢出 只有作为局部变量的数组才是存放在栈区。接着我又创建一个上面的这样哈希表 因为一个数字最多出现两万次,所以要用一个两万大小的数组存这个数字可能存在的下标。
2023-03-30 23:30:43
100
原创 Leetcode 179.最大数 C语言 模拟法+快排
显然,对于字符串ab与ba,越高位的元素越大,那么这个数就一定越大,那么我们就可以用strcmp函数对字符串ab与字符串ba逐个元素进行比较。对于cmp传进来的两个参数,我们先将他们转换为字符串a与字符串b,然后把b放在a后面,把a放在b后面,比较字符串ab与字符串ba谁大。需要注意的是 如果最后的结果有前导零,需要去掉前导零 直接返回“0”(实际上就是每个元素都是0,这样排序的结果才会有前导零)那么问题来了,如何判断两个元素谁大谁小呢?我们需要快速排序将大的元素排在前面,小的元素排在后面。
2023-02-09 03:35:14
138
原创 C语言程序设计教程(第三版)课后习题11.8
/如果没有typedef就必须用struct Student stu1;//接下来N行是a的数据 然后M行是b的数据 每行数据由学号和成绩两部分组成。//题目:已有a、b两个链表,每个链表中的结点包括学号、成绩。//这里的Stu实际上就是struct Student的别名。//第一行,a、b两个链表元素的数量N、M, 用空格隔开。//要求:把两个链表合并,按学号升序排列。// 输入数据| 输出数据。//按照学号升序排列的数据。
2022-09-23 15:25:38
414
1
空空如也
VS C语言 二维数组无法在函数中传参
2023-06-22
为什么C++/C语言文件保存较多资料时候出现乱码?
2023-05-16
请问 32位有符号的整形 第一位可以进行位运算吗?
2023-01-19
在qsort的cmp函数中,为何这种转型方式会报错?
2022-12-31
C语言 力扣51题 N皇后问题 报错堆缓冲区溢出 VS却能成功运行
2022-12-30
Visual Studio 报错 写入访问权限冲突 如何解决?
2022-10-24
力扣1008题:为何声明全局变量的时候还要在函数执行的时候再次初始化呢?
2022-10-24
Visual Studio 报错 写入访问权限冲突 请问如何解决?
2022-10-24
请问:为何我这样声明二维数组的时候力扣会报错呢?力扣中国版 64. 最小路径和
2022-10-20
请问:循环内初始化值时机是什么时候呢?
2022-09-19
请问,下列代码里,for循环的表达式4执行的时机是什么时候呢?
2022-09-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人