一些额外的字符被添加到传递给函数的参数中

时间:2013-05-23 05:52:27

标签: c visual-studio-2010

我正在调用函数parse_consol(definition1);其中定义,即传递的参数是char *类型,是xml文件的绝对路径。当我检查(通过调试)传递的值是绝对正确的但是当对函数定义的控制时,它所采用的值会在末尾附加一些随机字符,这会导致失败。

我需要知道这些字符最后是如何附加到函数定义中的实际参数的。

以下评论代码:

definition_state1 = (char*)malloc(((int) strlen(((char*)definition_path)+1))); 
strcpy(definition_state1 ,(char*)definition_path); 
definition_state2 = (char*)malloc(((int) strlen(((char*)value[1])+1))); 
strcpy(definition_state2 ,(char*)value[1]); 
strcat(definition_state1,definition_state2); 
get_license_properties("D:\\Automation\\InputFiles\\current_state\\c2v1.c2v"); // parser for decoded c2v 
parse_consolidated(definition_state1); // parser for consolidated xm

1 个答案:

答案 0 :(得分:4)

很可能你是溢出definition_state1缓冲区。您分配了definition_path+1缓冲区并将definition_path复制到缓冲区中。然后,您将definition_state2附加到此缓冲区,这肯定会溢出definition_state1缓冲区。