数据结构笔记(未完待续)
warning: address of local variable ‘ch’ returned [-Wreturn-local-addr]
char ch[64] = {0};
原因:在函数内部定义变量,并返回
char ch[64] = {0};
…
return ch;
这样函数内部定义的变量在函数结束时被释放掉,所以返回是找不到的。
改为
static char ch[64] = {0};就不会了,警告消除。
[Error] assignment to expression with array type
翻译:数组类型匹配错误。
给char数组赋值字符串在数组定义时可以完美运行,但是在如上情况就会报错。因为此时数组名表示的是一个指针,指向数组首元素地址,这样赋值就等于尝试修改地址。
正确的方法是:
1.scanf()
2.strcpy()如注释所示