1234 char p=(char )malloc(sizeof(char)100); char q=(char )malloc(sizeof(char)100); gets(p); gets(q);可以用gets和fgets两个方法得到键盘输入,并且也支持输入中文字符
但是gets方法不太安全,特别在linux下会报警报
由于gets()无法知道字符串s的大小,必须遇到换行字符或文件尾才会结束输入,因此容易造成缓冲溢出的安全性问题。建议使用fgets()取代。
char
s[80];
fputs(fgets(s,80,stdin),stdout);
}
执行
this
is
a
test
/输入/
this
is
a
test
/输出/
getchar
是获得单个字符,不过你可以通过循环得到字符串
for(i=0;i<5;i++)
{
c=getchar();
putchar(c);//输出
}
在c语言中定义一个指针
charp;
charstr[10]="afjkfdhsjk";
p=str;
指针p指向字符串str的首地址
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
起初,C语言没有官方标准。1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。布莱恩·柯林汉(BrianKernighan)和丹尼斯·里奇(DennisRitchie)出版了一本书,名叫《TheCProgrammingLanguage》。这本书被C语言开发者们称为K&R,很多年来被当作C语言的非正式的标准说明。人们称这个版本的C语言为K&RC。
指针要么是在初始化的时候进行赋值,如:char p = "hello world!";要么在之后将指针指向一个已经初始化的内存空间,因为只定义而未初始化的指针不会指向任何内存空间,是不能对指针指向的地方进行赋值的。这就是为什么如果只定义了指针,而为初始化时要使用Xalloc或者new来申请空间。 你这样写的话,应该是不行的,要么你在后面加malloc或new申请空间在赋值,要么直接把指针指向一个已经初始化好的内存空间!以上解释和以下代码仅供参考#include "iostream"
using namespace std;
int main ()
{
char ptr[3];
for(int i = 0 ; i <= 2 ; i++)
//ptr[i] = "hello!"; 重新指向
{
ptr[i] = (char )malloc(10sizeof(char)); //申请空间,与上面的重新指向区别
cin>>ptr[i];
}
for(i = 0; i <= 2 ; i++)
cout <<ptr[i] << endl;
return 0 ;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)