以下幾行有什麼問題?以下使用strcat_s會顯示「C4047:間接級別不同」
//Thanks to Mark
#include <string.h>
#include <stdio.h>
int main(int argc, char* argv[])
{
char datfile[127];
if(argc < 2) return -1;
strcpy_s(datfile, strlen(argv[1]), argv[1]);
strcat_s(datfile, strlen(argv[1]) + 4, ".dat");
printf("%s\n",datfile);//the warning appears here (why?)
return 0;
}
它顯示Warning C4047 'function': 'const char *' differs in levels of indirection from 'char'
我已經通過MSDN爲C4047
提供的文檔了。它命名爲levels of indirection
。我已經在網絡上與這個主題i.e. levels of indirection
進行了一些討論,並且(作爲一個新手),我發現那些超出了我的雷達範圍。
如果有人指出上述代碼的問題,並提供術語level of indirection
的簡單易懂的解釋,我會很高興。原始錯誤的
錯誤報價。 – Mat
另外,兩種情況下的第二個參數都應該是* destination *中的元素數,而不是源,例如127.請參閱https://msdn.microsoft.com/en-us /library/td1esda9.aspx。 –
@Mat'''謝謝。現在它說'......與'char''的間接程度不同 – AAK