C语言问题:申请一个512字节的内存空间,然后将查询结果的长度放在前面四个字节,后面接着存放结果有效字符串。如果结果超过了512字节,就丢弃超出部分
怎么写
C语言申请空间怎么处理?
答案:2 悬赏:0 手机版
解决时间 2021-01-26 21:59
- 提问者网友:謫仙
- 2021-01-26 14:17
最佳答案
- 五星知识达人网友:行雁书
- 2021-01-26 15:14
代码如下:
char *p = (char *)malloc(512);
memset(p,0,512);//清零
int resLen; //放长度的四个字节
memcpy(p,&resLen,4);
//str为你要存的有效的字符串
if (resLen <= 508)
{
memcpy(p+4,str,resLen);
}
else
{
memcpy(p+4,str,508);
}
char *p = (char *)malloc(512);
memset(p,0,512);//清零
int resLen; //放长度的四个字节
memcpy(p,&resLen,4);
//str为你要存的有效的字符串
if (resLen <= 508)
{
memcpy(p+4,str,resLen);
}
else
{
memcpy(p+4,str,508);
}
全部回答
- 1楼网友:荒野風
- 2021-01-26 15:26
1.calloc = 2malloc + memset
3与4是连续的,但是他们方式不一样,3你是通过new出来的和malloc一样,它申请的堆中的内存,需要手动释放。而4char t[10]如果你是在函数里用到就是在栈里申请的,出函数会自动释放,如果是在文件开头的全局变量那就是在静态存储区 就这点区别
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯