char* pStr[] = {"123", "456", "789", "012", "345", "678", "901"};

이런 포인터 배열이 있습니다.

7개짜리 배열이네요.

이걸 순서를 바꾸려고 하는데요.


srand ( unsigned int(time(NULL)));

char* cTmp;

memset(cTmp, 0, sizeof(cTmp));

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

{

    int n = rand() % 7;

    strcpy(cTmp, pStr[i]);   // 탬프에 i번째 값 복사

    strcpy(pStr[i], pStr[n]); // i번째에 n번째 값을  복사

    strcpy(pStr[n], cTmp);   // n번째에 탬프 값 복사

}


이렇게 했는데요.

i번째에 n번째 값을 복사할 때 에러나 나면서 죽네요.

왜 죽을 까요?

아 pStr은 원래 전역변수 값이고 구조체에 다른 변수에 메모리복사해서 쓰는 겁니다.

위 코드는 편의상 생략했습니다.

그러니까 strcpy는 구조체 내부의 값을 복사하는 겁니다.