C语言复习 -- printf报错 Segmentation fault
来源:互联网 发布:南方全站仪到数据驱动 编辑:程序博客网 时间:2024/06/01 08:55
刚才printf的时候,报错“Segmentation fault”。在网上有个例子写的比较详细,自己测试如下:
=== 代码:
#include <stdio.h>
#include <string.h>
int main(void) {
char buf[100];
char *p = buf;
strcpy(p, "Test string");
printf("%s\n", *p);
return 0;
}
=== 结果:
[oracle@aa tmp]$ ./a.out
Segmentation fault
[oracle@aa tmp]$
=== 分析原因:
When you write
printf("%s\n", *p);
the *p
will be the value at p[0]
which is a character. The printf however is looking for an array of chars, thus causing it to segfault. Remember that in C, strings are just arrays of characters, and arrays are effectively pointers to the first element, this is why you don't need to dereference.
To fix this remove the * to get:
printf("%s\n", p);
=== 修改重测:
[oracle@AA tmp]$ vi a.c
[oracle@AA tmp]$ gcc a.c
[oracle@AA tmp]$ ./a.out
Test string
[oracle@AA tmp]$
原址如下:http://stackoverflow.com/questions/2976204/c-segmentation-fault-while-using-printf
- C语言复习 -- printf报错 Segmentation fault
- Segmentation fault报错
- Segmentation fault与printf
- printf出现Segmentation fault
- C语言变量值丢失、segmentation fault
- mysql报Segmentation fault错误
- C语言中经常遇到的 segmentation fault 错误
- Apache报错:exit signal Segmentation fault (11)
- mysql导入sql文件的时候报错Segmentation fault
- python import cv2报错 segmentation fault:11
- import cv2 报错 Segmentation fault (core dumped)
- 在使用git bash时,报错:segmentation fault
- Linux C程序:Segmentation fault
- segmentation fault(linux c)补遗
- c语言指针segmentation fault 指针常常错误的小地方
- c语言指针segmentation fault 指针常常错误的小地方
- C语言中"=="的进击——“segmentation fault”!
- C语言 段错误Segmentation Fault 一种情形的简单分析
- VirtualBox虚拟机XP与宿主机Ubuntu互访共享文件夹的实现方法(二)
- vs2008中ActiveX控件的测试(Active X Test Container)
- nginx简介及简单使用
- ArcGIS4Android开发----空间查询
- RK2918 Android 移植触摸屏遇到的一些问题
- C语言复习 -- printf报错 Segmentation fault
- Linux设备驱动程序工作原理
- ExtJS 初次开发几个问题
- TipsWindown 1.0
- wireshark如何抓取本机包
- ArcGIS4Android开发----要素识别
- ffmpeg 视频编码调用
- vi命令的查找和替换
- hdu 2178