C语言指针使用不当带来的内存不可读
2017-07-24 12:42
260 查看
小鱼的技术博客,主谈C语言编程,顺便谈谈人生,谈谈理想,关注热链:我的CSDN技术博客
前几天遇到一个C语言初学者提到的一个问题,代码我做了一些修改,如下:
代码的本意很简单,定义了一个字符数组,想通过两个指针,一个是pStart指向数组第一个元素,一个指针是pEnd指向数组最后一个元素,来逆序这个字符数组。编译时是可以通过的,可以在运行时总是报错:
这个错误的原因说隐蔽也不隐蔽,说容易发现也不是那么容易发现的,我想读者应该知道错误在哪里,可以在留言里指出错误所在。一眼没有发现错误原因的朋友,可不要急着看评论哦~~~
前几天遇到一个C语言初学者提到的一个问题,代码我做了一些修改,如下:
#include <stdio.h> #include <string.h> int main(void) { char str[10] = "I love C"; char *pStart = &str[0]; char *pEnd = &str[strlen(str) - 1]; char *temp = NULL; while(pStart < pEnd) { *temp = *pStart; *pStart = *pEnd; *pEnd = *temp; pStart++; pEnd--; } printf("now the string is %s\n", str); return 0; }
代码的本意很简单,定义了一个字符数组,想通过两个指针,一个是pStart指向数组第一个元素,一个指针是pEnd指向数组最后一个元素,来逆序这个字符数组。编译时是可以通过的,可以在运行时总是报错:
这个错误的原因说隐蔽也不隐蔽,说容易发现也不是那么容易发现的,我想读者应该知道错误在哪里,可以在留言里指出错误所在。一眼没有发现错误原因的朋友,可不要急着看评论哦~~~
相关文章推荐
- C语言指针使用不当带来的内存不可读
- 关于C语言中一,二级指针函数中的使用和c语言中和函数发生调用时,实参和形参都会占用内存吗?
- C语言03 - 函数指针、内存分配、字符串使用
- 【C】C语言中的指针概述与内存使用
- 记一次指针使用不当造成的内存泄露。
- 【C语言提高24】二级指针做输入的第一种内存模型:数组指针
- c语言使用指针实现二叉树遍历
- C语言内存分配、指针强制转型和异地释放内存
- Android中Handler使用不当引起的内存泄露
- 有效的使用和设计COM智能指针——条款25:思考兼容取地址操作符带来的若干问题
- Delphi中的指针与C语言中指针使用时的简单对比
- 使用malloc分别分配2KB,6KB的内存空间,打印指针地址
- 使用C语言实现消耗Linux内存
- C语言->实验室->指针在函数中的使用
- 如何使用指针去申请内存
- C语言--无类型指针void*的学习与使用
- C语言——指针与结构体 内存的动态分配
- MYSQL存储过程中使用临时表(错误:内存不可读)
- C语言:动态内存会被自动释放吗?杜绝“野指针”
- C语言中的二级指针的三种内存模型