oK所以我在c中编写程序并想检查字符串是否已更改,所以最初我这样做了:
if(strcmp (ax,result)!=0){
result=ax;
xil_printf(result);
xil_printf("detected");
}
}
它只检测到一次,然后我发现我正在使2个指针相等,所以即使斧头的变形因此也会发生,因为它们现在都指向同一个东西,但我不想要我只想将结果数据更改为等于ax的ppointee,因为字符串ax将在代码中稍后更改,以便我可以检测到它何时执行。 所以我试过这个:
if(strcmp (ax,result)!=0){
*result=*ax;
xil_printf(result);
xil_printf("detected");
}
}
并且它出现了错误,无论如何如何做我想做的事情,我使结果数据等于ax但他们没有指向同一件事: 所以,如果
ax-->"hello" adrress: 232
result-->"frog" adrress: 415
我发现它们是不同的然后我这样做:
ax-->"hello" adrress: 232
result-->"hello" adrress: 415
但不喜欢这个! :
ax-->"hello" adrress: 232
result-->"hello" adrress: 232 <--(they point at same thing which happens when i say result=ax)
所有想法?
答案 0 :(得分:1)
您需要执行strcpy(result, ax);
唯一的问题是,你需要确保结果有足够的空间来存储斧头
所以你的代码将是
if(strcmp(ax,result) != 0){ // result is different from ax
strcpy(result, ax); // copy ax to result
xil_printf(result);
xil_printf("detected");
}