【C语言】常见错误
来源:互联网 发布:我心中的全面小康知乎 编辑:程序博客网 时间:2024/04/28 14:40
1、
char * p;
注意p中包含字符串结束符‘\0’
2、
strlen函数没有包含字符串末尾的'\0'
3、
如果函数的参数是一个指针,不要指望用该指针去申请动态内存
4、
createNode(BinNode *tree,char *p)
{
tree = (BinNode *) malloc(sizeof(BinNode));
tree->data = *p;
}
访问tree.data错误;
原来问题出在C编译器原理上:编译器总是要为函数的每个参数制作临时副本,指针参数tree的副本是 _tree,编译器使 _tree = tree。如果函数体内的程序修改了_tree的内容,就导致参数tree的内容作相应的修改。这就是指针可以用作输出参数的原因。
即上面的函数代码经过编译后成为:
createNode(BinNode *tree,char *p)
{
BinNode *_tree;
_tree = tree;
_tree = (BinNode *) malloc(sizeof(BinNode));
_tree->data = *p;
}
5、
char p[] = "helloworld";
return p;
p数组为函数内的局部变量,在函数返回后内存已经被释放,考虑变量的生存周期
- C语言常见错误
- C语言:常见错误
- 【C语言】常见错误
- c语言常见错误
- C语言常见错误
- C语言常见错误
- C语言常见错误
- C语言常见错误
- C语言常见错误
- C语言常见错误
- C语言常见错误
- C语言常见错误
- C语言中常见错误
- C语言中常见错误
- C语言常见错误小结
- C语言常见错误小结
- C语言常见错误分析
- C语言常见错误提示
- 解析IPV4报文 和IPV6 报文的 checksum 的算法
- delphi Jpg和Gif转Bmp
- java学习笔记
- css实现特殊的现实样式(超过表格宽度的内容只显示...)
- Web页面的数据导出excel时的格式问题(长数字显示为科学计数法格式等)
- 【C语言】常见错误
- 正则表达式语法
- poj2002 Squares 解题报告
- textarea文本域宽度和高度(width、height)自动适应变化处理
- Conversion to Dalvik format failed: Unable to execute dex: wrapper was not properly loaded first
- 读取本地JSON数据初始化树
- 不同情况下构造skb数据包的实现
- 这种公司状况 你遇到过没有——突发事件啊
- js string to json / json to string