【发布时间】:2016-07-05 08:19:25
【问题描述】:
char *test={"0x11","0x12","0x13","0x00","0x00"};
void change(char* test1, char* test2){
strncpy(test[3], test1, 4);
strncpy(test[4], test2, 4);
}
chage("0x55","0x66");
我可以直接将字符分配给数组元素。但是,它会导致内存泄漏。这就是我改用strncpy() 的原因。
如果您知道如何解决,请告知。
【问题讨论】:
-
开启编译器警告:
-pedantic -Wall -Werror -std=c11. -
由于某种原因,测试被初始化为一个字符串数组(char**)。我想知道它最初是如何工作的。
-
我想知道你怎么不会在最后一行的很多地方出现语法错误(0x66 是一个数字,而不是一个字符串,并且可能被隐式转换为一个确实无效的指针)
-
不要尝试修改常量。
-
@PaulStelian 这是一个错字。我已经更新了我的问题