请告诉我为什么这个函数会把'\0'
作为第二个参数,编译并崩溃?
char var[9];
/*some initialization of var */
strcat(var, '\0');
最佳答案
该函数将const char *
作为第二个参数。你通过了一个int
。
char *strcat(char *restrict s1, const char *restrict s2);
你基本上是在欺骗
strcat
去引用\0
作为指针-它去引用NULL
。关于c - 为什么strcat导致崩溃?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9428827/