#include "stdio.h"
#include "stdlib.h"
typedef struct
{
char *ch;
int length;
}Str;
int strassign(Str& str,char* ch)
{
if(str.ch)
free(str.ch);
int len=0;
char *c=ch;
while(*c)
{
++len;
++c;
}
if (len==0)
{
str.ch=NULL;
str.length=0;
return 1;
}
else
{
str.ch=(char*)malloc(sizeof(char)*(len+1));
if(str.ch=NULL)
return 0;
else
{
c=ch;
for(int i=0;i<=len;++i,++c)
str.ch[i]=*c;
str.length=len;
return 1;
}
}
}
void main()
{
Str str;
strassign(str,"cur");
printf("helloworld");
}
这段代码可以编译但是运行的时候出了问题,求解怎么回事
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
悬赏问题
- ¥15 使用X11可以找到托盘句柄,监控到窗口点击事件但是如何在监听的同时获取托盘中应用的上下文菜单句柄
- ¥15 IEd中开关量采样信号通道设计
- ¥45 字符串操作——数组越界问题
- ¥15 Loss下降到0.08时不在下降调整学习率也没用
- ¥15 QT+FFmpeg使用GPU加速解码
- ¥15 为什么投影机用酷喵播放电影放一段时间就播放不下去了?提示发生未知故障,有什么解决办法吗?
- ¥15 来个会搭建付费网站的有偿
- ¥100 有能够实现人机模式的c/c++代码,有图片背景等,能够直接进行游戏
- ¥20 校园网认证openwrt插件
- ¥15 以AT89C51单片机芯片为核心来制作一个简易计算器,外部由4*4矩阵键盘和一个LCD1602字符型液晶显示屏构成,内部由一块AT89C51单片机构成,通过软件编程可实现简单加减乘除。