用的VS,写的字符串的copy 、 cmp 、cat, 在VC环境下运行没有终止,在VS下就终止了

#include "stdafx.h"

#include

using namespace std;

char *StrCpy(char *pDest, const char *pSrc)

{

for (int i = 0; '\0' != (pDest[i] = pSrc[i]); i++)

{

}

return pDest;  

}

bool StrCmp(const char *pStr, const char *pStr1)

{

bool bFlag = true;

for (int i = 0;; i++)  
{  
    if (pStr[i] != pStr1[i])  
    {  
        bFlag = false;  
        break;  
    }  
}  
return bFlag;  

}

char *StrCat(char *pDest, const char *pSrc)

{

for (int i = 0; ; i++)

{

if ('\0' == pDest[i])

{

for (int j = 0; ; j++)

{

pDest[i + j] = pSrc[j];

if ('\0' == pSrc[j])

{

return pDest;

}

}

}

}

return pDest;

}

int main()

{

char cStr1[34] = "NSGDSB!";

char cStr2[] = "NSDSB!";

char pDest[] = "";

char cStr3[] = "dsad";

StrCpy(pDest, cStr1);  
cout << pDest << endl;  

cout << StrCmp(cStr1, cStr2) << endl;  

cout << StrCat(cStr1, cStr3) << endl;  

return 0;  

}

终止是什么意思?编译通不过?还是运行异常程序崩溃了?