C语言里面sprintf函数使用问题

#include"iostream"#include"string.h"usingnamespacestd;voidmain(){char*str1="Text.txt"... #include "iostream"
#include "string.h"
using namespace std;

void main()
{
char *str1 = "Text.txt";
char *Temp = NULL;
sprintf(Temp,"%c%c%c%c",*(str1+5),*(str1 + 4),*(str1 + 3),*(str1 + 2));
cout<<true<<endl;
}
请问下这个这样赋值调试的时候为什么内存会奔溃啊?错在哪里了呢?请高手指点下!
展开
 我来答
百度网友0b3b3b0dd0
2012-03-21 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1.6万
采纳率:0%
帮助的人:3373万
展开全部
%6.2f的格式含义是,数字整体长度包括小数点为6位,保留两位小数。但当实际长度大于格式定义的位数时以实际为准,因此输出是12345678.12
第二个当格式定义的位数大于实际长度时,补空格
输出就是:##1.20 #表示空格
百度网友3076ef7
推荐于2016-09-25 · TA获得超过377个赞
知道小有建树答主
回答量:191
采纳率:0%
帮助的人:158万
展开全部
Temp指向NULL 不可以使用
可以定义一个数组 然后Temp指向这个数组
也可以 Temp=(char*)malloc(10);
你需要确定 指针直线的内存空间可以使用 NULL显然是不可以使用的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式