代码二:编译正常,但运行会出现内存错误
char *name = NULL; //声明并初始化指针
printf("what's your name?\n");
scanf("%s", name);
printf("Hello, %s\n", name);
原因在于没有给name分配内存空间,所以要更改为以下代码实现
char *name = (char *)malloc(sizeof(char) * 1024);
或
char *name = (char *)malloc(_MAX_PATH);
if(NULL == name){
exit(1);
}
printf("what's your name?\n");
scanf("%s", name);
printf("Hello, %s\n", name);
注:#include <stdlib.h> /*For _MAX_PATH definition*/
printf()语句将输出传递给一个称为缓冲区(buffer)的中介存储区域。缓冲区中的内容不断地被传递给屏幕,标准C在以下几种情
况下将缓冲区内容传给屏幕:缓冲区满的时候、遇到换行符的时候、需要输入的时候(scanf语句)。将缓冲区内容传给屏幕或文件
称为刷新缓冲区(flushing the buffer): fflush()函数刷新缓冲区
scanf()开始读取输入以后,会在遇到的第一个空白字符空格(blank)、制表符(tab)或换行符(newline)处停止读取,因此在使用%s
的scanf()知会把一个单次而不是把整个语句作为字符串读入,C使用其他读取输入函数(如gets())来处理一般的字符串
数组、指针均可表示字符串,其实数组和指针之间可以很灵活通用,但必须很好的理解数据、指针和内存
char *str = "testString";
char str[] = "testString";
分享到:
相关推荐
C语言用指针将字符串数组位置颠倒,实现ABCDEFGHIJKLMNOPQRSTUVWXYZ转换成ZYXWVUTSRQPONNOPQRSTUVWXYZ
本文档在某知名网站下载,要么浏览量最多,要么最新,保证精品,至少为你节约3RMB。格式为caj或者kdh需要专业阅读器打开。
C++课程-3_数组指针与字符串 C++课程-3_数组指针与字符串
C语言中的字符串数组和字符串指针.pdf
实验与指导-数组指针字符串 指针与数组区别
字符串指针字符串指针与字符数组的区别与字符数组的区别 转载
9.1 1分钟彻底理解指针的概念 9.2 大话C语言指针变量 9.3 C语言指针变量的运算 9.4 数组指针(指向数组的指针) 9.5 字符串指针(指向字符串的
指针与字符串指针数组多级指针及练习PPT学习教案.PPTx
字符串是存放在字符数组中的,对字符数组中的字符逐个处理时,前面介绍的指针与数组之间的关系完全适用于字符数组。通常将字符串作为一个整体来使用,用指针来处理字符串更加方便。当用指向字符串的指针来处理字符串...
这样两者的区别就豁然开朗了,数组指针只是一个指针变量,似乎是C语言里专门用来指向二维数组的,它占有内存中一个指针的存储空间。指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的存储空间。 还...
这是老师做的PPT,关于数组指针与字符串的,转为学习C++的量身定做,非常好用,和大家分享一下,希望一起进步,谢谢!
详细介绍了易如何用指针来操作字符串和字符串指针,包括指针数组传参。
主要介绍了C++中字符串以及数组和指针的互相使用讲解,是C++入门学习中的基础知识,需要的朋友可以参考下
本书针对程序设计的初学者,以面向对象的程序设计思想为主线,以通俗易懂的方法介绍C++语言,引导读者以最自然的方式,将人类习惯的面向对象的思维方法运用到程序设计中。主要内容包括程序设计基础知识、类与对象的...
数组例程详解 指针例程详解 字符串例程详解 PPT详细描述数组、指针和字符串在C程序中的应用
如何在C语言中处理“字符串”,请善用指针、数组。
实验5 数组、指针与字符串 指向类的非静态函数成员的指针和指向类的静态函数成员的指针在定义和使用上的区别,为何存在这种差别
用指针数组的方法将字符串排序
C语言第讲指针与字符串字符数组PPT课件.pptx
C++数组指针与字符串.pdf