发现一个c语言中用字符数组和char型指针管理字符串一个很容易搞混的地方
来源:互联网 发布:for循环鸡兔同笼编程 编辑:程序博客网 时间:2024/05/29 07:35
#include <stdio.h>#include <string.h>int main(){char a = 'c';char * p = &a;strcpy(p, "hello");printf("%s", p);return 0;}
这里是在使用strcpy()函数时发现的,这里尤其要注意strcpy()函数作用是用于拷贝数组,也就是要求目的对象应该有自己足够的空间用于储存新拷贝的字符串,而像上面给出的这种情形会发生 ""segmentation fault""的错误
由于p是一个指向字符串的地址,所以直接将"hello"拷贝给p,就会有可能p根本存储不下"hello",也有可能让p的值变成一个随机地址,解引用时就会发生不明确的错误,而在使用printf()函数打印字符串时,由于地址为p的内存的后面很长一段都可能没有 空字符'\0'来给编译器指出何时停止,所以会产生数组越界错误
1 0
- 发现一个c语言中用字符数组和char型指针管理字符串一个很容易搞混的地方
- 字符指针char* 和 字符数组的一个小例子
- C语言:将输入的字符串(char* cp)存入字符指针数组(char * spa[])
- C语言 字符数组和字符串指针的理解
- \t\t字符指针char* 和 字符数组的一个小例子
- 函数内 声明一个字符数组和一个指向字符串数组的指针 区别
- C语言中关于指针,二维数组等的问题,一个有趣的发现
- 12、C语言。指向(只有一个字符的字符串、字符变量、一个字符)的指针变量的相同与区别
- 11、C语言中字符数组和指针字符串的指针变量
- C语言中用struct封装一个数组
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- 廖雪峰老师——Python入门(Python变量和数据类型 )
- 写给软件学院的本科生(转)
- Vim可选插件
- MyBatis之select
- unity 的内存优化工具 Memory Profiler
- 发现一个c语言中用字符数组和char型指针管理字符串一个很容易搞混的地方
- Go Web编程一: Go Web 基础
- Fodera使用教程(不断更新中)
- 分享tcp与udp的异同
- OI竞赛中手工栈的书写
- 关于cctype头文件
- 廖雪峰老师——Python入门( List和Tuple类型 )
- 数据库基础知识
- PHP+MySQL环境搭建简说