操作系统为win7,开发工具为vs2010,C语言中我定义了一个结构体,typedef struct amqp_init{
char exchange[20];
char routekey[20];
char type[10];
amqp_socket_t* socket;
amqp_connection_state_t conn;
amqp_basic_properties_t props;
amqp_queue_declare_ok_t* havequeue;
struct amqp_connection_info conn_info;
}amqpinit;然后通过strcpy或者strcpy_s赋值给里面的exchange和routekey还有type
struct amqp_init* const cy_amqpinit;(已经申请过空间了,由于无关问题就不写出来了)
exchange = "cy.innerSendExchangeOne";
routekey = "cy.innerSendQueueOne";
strcpy_s(cy_amqpinit->exchange,strlen(exchange) + 1,exchange);
strcpy_s(cy_amqpinit->routekey,strlen(routekey) + 1,routekey);
strcpy_s(cy_amqpinit->type,strlen("direct") + 1,"direct");
发现运行第二句的时候会将routekey的值添加到刚赋值过的cy_amqpinit->exchange后面,运行到第三句时也会将“direct”添加到赋值过的cy_amqpinit->routekey和cy_amqpinit->exchange后面。所以本来应该是
cy_amqpinit->exchange = "cy.innerSendExchangeOne";
cy_amqpinit->routekey = "cy.innerSendQueueOne";
结果现在变成
cy_amqpinit->exchange = "cy.innerSendExchangeOnecy.innerSendQueueOnedirect";
cy_amqpinit->routekey = "cy.innerSendQueueOnedirect";
另外三句strcpy语句中间没有任何语句了,求有经验的大神指教