网网站设计网,重庆景点图片,深圳建设网招标公告,深圳网站设计建设1 问题
我的buff在if{}里面#xff0c;然后对buff进行内存操作#xff0c;最后赋值给char *类型的url,发现url最后没有得到数据
如下代码
#include stdio.h
#define TRUE 1void set_value(char *p)
{*p c;*(p 1) h;*(p 2) e;*(p 3) n;
}int main()
{char *…1 问题
我的buff在if{}里面然后对buff进行内存操作最后赋值给char *类型的url,发现url最后没有得到数据
如下代码
#include stdio.h
#define TRUE 1void set_value(char *p)
{*p c;*(p 1) h;*(p 2) e;*(p 3) n;
}int main()
{char *url NULL;if (TRUE){char buff[10] {0};set_value(buff);url buff;printf(first url is %s\n, url);}//具体操作urlprintf(second url is %s\n, url);return 0;
}
我把buff定义在if{}里面然后在实现一个函数操作buff,然后在里面赋值给url, 然后在{}外面再操作url发现url是NULL的但是我单独这样写个Demo这个url又不为NULL 2 解决办法
后面再做了优化把char buff[10] {0}放在if外面
int main()
{char *url NULL;char buff[10] {0};if (TRUE){set_value(buff);url buff;printf(first url is %s\n, url);}//具体操作urlprintf(second url is %s\n, url);return 0;
} 3 总结
一般字符数组赋值给char *,我们最好把字符数组和char *保持同区域