[英]Strcpy in xcode
這是我的代碼
char strings[10][10] = {"aaa", "bbb", "ccc"};
strcpy(strings[0], strings[0]);
我在Xcode中創建一個C項目,然后運行它將崩潰。 但是,如果這是一個Objective-C項目,那就沒問題了
當源和目標重疊(或與您的情況相同)時調用strcpy在C,C ++,Objective-C和Objective-C ++中是未定義的行為。 未定義的行為表示“可能發生任何事情”。 “任何”都包括使一個編譯器崩潰而沒有使另一編譯器崩潰。 它還包括更糟糕的事情。
如果是C項目,則將strcpy替換為#if __has_builtin(__builtin___strcpy_chk) || defined(__GNUC__)
#if __has_builtin(__builtin___strcpy_chk) || defined(__GNUC__)
#undef strcpy
#if __has_builtin(__builtin___strcpy_chk) || defined(__GNUC__)
#define strcpy(dest, src) \\
__builtin___strcpy_chk (dest, src, __darwin_obsz (dest))
#endif
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.