社区
C语言
帖子详情
简单程序里最后一个“}”前的printf竟然无法执行!
csoapy
2003-03-24 03:16:51
请解惑:
main()
{int i=0;
char *s="123456",*a="";
i=strlen(s);
printf("%d \n",i);
strcpy(a,s);
puts(a);
printf("dao ci jie shu "); /*这一句无法输出!*/
printf("\n\n");
}
...全文
57
12
打赏
收藏
简单程序里最后一个“}”前的printf竟然无法执行!
请解惑: main() {int i=0; char *s="123456",*a=""; i=strlen(s); printf("%d \n",i); strcpy(a,s); puts(a); printf("dao ci jie shu "); /*这一句无法输出!*/ printf("\n\n"); }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chongyiren
2003-03-24
打赏
举报
回复
解答正确,加十分。
Meyer
2003-03-24
打赏
举报
回复
使用strcpy 你必须自己保证你的 目的地具有足够的空间能容得下 原字符串
一般:
char* pdest = (char*)malloc(strlen(psorc)+1);
if(pdest!=NULL)
{
strcpy(pdest, psorc);
}
kicool
2003-03-24
打赏
举报
回复
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXLEN 20 //规定a的最大长度
void main()
{int i=0;
char *s="123456";
char *a=(char *)malloc(MAXLEN); //动态分配内存
i=strlen(s);
printf("%d \n",i);
strcpy(a,s);//a指向内存分配的字节数必须>=strlen(s)+1
puts(a);
printf("dao ci jie shu ");
printf("\n\n");
free(a); //释放分配的内存
}
ransion
2003-03-24
打赏
举报
回复
char *a="";
改为char a[]=" ";
csoapy
2003-03-24
打赏
举报
回复
请写个更正事例吧,我回去翻书的时候也好有个参考
谢谢各位了,
俺不会忘了还有个“CSDN”!
LIFEForSoft
2003-03-24
打赏
举报
回复
char *a="";
改为用数组就可以了
char a[80];
TopCat
2003-03-24
打赏
举报
回复
你的strcpy(a, s)一句明显有问题,a还没分配内存呢
lbaby
2003-03-24
打赏
举报
回复
更正:*a指向的内存长度为1(即:'\0')
lbaby
2003-03-24
打赏
举报
回复
输出了
你的*a指向的内存长度为0
却将"123456"拷到了a所指向的内存中
将不属于自己的内存空间破坏(有可能是"dao ci jie shu "的空间,例如:'a'被'\0'取代的话,你的printf就像是没有执行一样)
所以,致使你的输出出错
learnner
2003-03-24
打赏
举报
回复
devc++里,编译没问题,但还没执行到你说的那句就报错了
strcpy(a,s);
或者
puts(a);
有问题
prettynacl
2003-03-24
打赏
举报
回复
strcpy(a,s);
这一句通过了?
csoapy
2003-03-24
打赏
举报
回复
难道是编译器……
嵌入式软件调试专题2:
printf
函数打印高阶技巧
分享使用
printf
打印的技巧:包括控制打印开关、打印等级控制、以及打印函数
printf
缓冲机制带来的打印延迟问题,让你在工作、学习、软件debug中提高工作效率!
利用C语言实现
简单
的计算器
程序
而使用C语言编写
一个
简单
的计算器
程序
,则是
一个
很有挑战性和有趣的任务。因此,我们的
程序
需要能够接受用户输入的两个数,并根据用户选择
执行
相应的运算。分支中,我们可以使用
简单
的算术运算符来
执行
相应的运算,...
linux下
printf
语句
执行
时间,C语言中
Printf
()函数的运行机制
printf
()是用来输出
一个
格式化的串的;它的参数个数是不确定的;可以有多
一个
;...这
一个
涵数的第
一个
用法也是最
简单
的使用方法就是
printf
(str);如:
printf
("hello world");第二种使用方法是串中存在其他格式;...
printf
函数参数的
执行
顺序的
简单
探究
大部分人应该都对
printf
函数比较了解,这也是作为c语言初学者第
一个
遇到的函数吧!! 哈哈,就是那个什么(打印hello,world)啊,当时当被问到
printf
函数的
执行
顺序的时候,好多人应该都不清楚,但是作为对c语言...
开发板linux中运行
简单
hello world应用
程序
的
printf
无输出的原因
最近在arm linux的开发板上运行
一个
如下的最
简单
hello world应用
程序
,发现
程序
执行
完后,
printf
的打印无输出。而且没有也没提示任何错误。 #include int main(void) {
printf
("hello world\n"); return 0; }我...
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章